1.Redis(简单的,高效的,分布式,基于内存的缓存机制)
1.1 性能极高:
- 读 110000次/s
- 写 81000次/s
1.2 丰富的数据类型:
- String,List,Hash,Set,Ordered Set
1.3 Redis操作都是具有原子性的
1.4 Redis单个Key能存入512M大小
2.Redis 数据类型
2.1 String
2.1.1 String类型常用命令:
-
赋值语法:
set key value:设置Key的值,如果key已经存在则覆盖。
++setnx key value:只有key不存在时设置key的值(解决分布式锁方案之一)。++ -
取值语法:
get key : 获取key对应的值,如果key不存在则返回nil。
getrange key start end :对获取key对应的值进行截取。
getbit key offset :对key所存储的字符串值,获取指定偏量上的位(bit)。
mget [key1,key2…] : 获取给定一个或多个key的值。
getset key value : 该语法用于设定key的值并返回旧值。
strlen key :返回key存储字符串的长度。 -
删除语法:
del key : 删除指定的key,如果存在返回数字类型。 -
自增自减:
incr key : incr命令将key的值增一。如果key不存在,那么key的值先被初始化为0,然后在执行incr操作+1。
decr key : decr命令将key的值减一。如果key不存在,那么key的值先被初始化为0,然后在执行incr操作-1。
incrby ken 增加量 : incrby命令将key中存储的数字加上指定的增加量。
decrby key 减少量 : decrby命令将key中存储的数字减去指定的减加量。
- 字符串拼接:
append key value :append命令用于指定key追加至末尾,如果不存在就为其赋值。
2.1.2 应用场景:
- String常用于保存单个字符串或者json字符串数据。
- 因为String时二进制安全的,所以你完全可以把一个图片文件内容作为字符串存储。
- 计数器(常规的key——value缓存应用常用计数,微博中粉丝数):
incr等指令本身就具有原子性操作的特征,因此我们可以利用redis的incr,incrby,decr,decrby等指令实现原子计数的效果。
2.2 哈希(Hash)
2.2.1 简介
Redis hash 是一个sting类型的filed和value的映射表,hash非常适合存储对象。Redis中hash可以存储 2的32次方-1 键值对(40多亿)可以看成具有key和value的MAP容器。该类型占用很少的磁盘空间(相比于json)
2.2.2 Hash 命令
- 赋值语法 :
hset key field value : 为指定的key设置 k/v(域/值)。
hmset key field value [field,value]… : 同时将多个field-value对设置到哈希表key中。 - 取值语法
hget key field : 获取存储在hash中的值,根据field得到value。
hmget key field [field1…] : 获取key给定所有field字段的值。
hgetall key : 返回hash表中该key存储所有的字段和值。 - 删除语法
hdel key field1 [field2] : 删除一个或多个hash表字段。 - 其他语法
hsetnx key field value : 只有字段field不存在时,设置哈希表字段的值。
hincrby key field increment : 为哈希表key中指定的字段的整数增加上增量increment。
hincrbyfloat key field increment : 为哈希表key中指定的字段的浮点数增加上增量increment。
hexists key field : 查看hash表key中指定的字段是否存在。
来源:CSDN
作者:年卿人
链接:https://blog.csdn.net/Geniusandmadness/article/details/104731010