上一篇 :5. 基础知识
下一篇 :7. 三种特殊数据类型
添加键值对
set 【key】 【value】
查看键对应的值
get【key】
查看当前库的所有键
keys *
判断某个键是否存在
EXISTS 【key】
移除某个键值对
move 【key】
设置某键值对过期时间
EXPIRE 【key】【seconds】
可以实现自定义的缓存
查看设置定时过期的属性的剩余时间
ttl 【name】
查看某个键的值是什么类型的
type 【key】
向已有的键的值后面追加字符串
APPEND 【key】【追加的值】
如果追加的值不存在,就会新建一个获取字符串的长度
STRLEN 【key】
实现 i++ 操作
INCR 【key】
可以设置步长的自增
INCRBY 【key】【步长】
实现 i-- 的操作
DECR 【key】
6. 设置步长的自减
> DECRBY 【key】【步长】获得字符串范围
GETRANGE 【key】【start】【end】
替换字符串中的某一段
SETRANGE 【key】【起始位置】【替换的值】
新建一个值,并且直接设置过期时间
SETEX【key】【second】【value】
当某个值不存在则新建,存在则不新建
SETNX 【key】【value】
9、10 两条在分布式锁中会常常使用同时设置多个值
MSET 【key】【value】 [【key】【value】……]
同时查询多个值
MGET 【key】 [【key】……]
多个值同时插入,当所有值不存在则新建,某一个存在则不新建
MSETNX 【key】【value】 [【key】【value】……]
存入一个 user 对象
方式一:
使用 JSON 字符串作为值存入 方式二:
把对象的名字和属性名结合,整体作为键; 属性的值作为键的值。
getset 组合命令
GETSET 【key】【value】
String 类型的应用场景: 数字 :计数器对象缓存存储……插入值
LPUSH 【key】 【value】
获取列表的值
LRANGE 【key】 【start】【end】
从同尾部插入数据
RPUSH 【key】 【value】
移除一个元素
从头部(L)移除 LPOP 【key】
从尾部(R)移除 RPOP 【key】
获取某个下标对应的值
LINDEX 【key】【index】
列表的长度
LLEN 【key】
移除指定的值
LREM 【key】【count】【元素】
截断 List ,保留一部分
LTRIM 【key】【start】【end】
移除列表的最后一个元素,并且添加到另一个列表
RPOPLPUSH 【source】【distinction】
判断多个列表是否存在
EXISTS 【key】[【key】……]
向列表的指定下标插入值
这个指定的下标原先必须有值
LSET 【key】【index】【value】
在指定元素的前/后插入值
LINSERT 【key】【before | after】【指定元素】【插入的值】
小结 List 实际上是一个双链表,所以可以在 left、right、指定 Node 前后插入值如果 key 不存在,创建新的链表如果 key 存在,新增内容如果移除了所有值,空链表,也就没有用了,就移除了从两边(left、right)插入或修改效率较高,从中间插入或修改效率较低插入一个值
SADD 【key】【value】
查询集合中所有元素
SMEMBERS 【key】
判断集合中是否存在某值
SISMEMBER 【key】【value】
查询集合元素个数
SCARD 【key】
取出集合中元素
SREM 【key】
随机选取一个元素
SRANDMEMBER 【key】[【count】]
随机删除值
SPOP 【key】[【count】]
把一个指定的值移动到另一个集合中
SMOVE 【source】【destination】【元素】
多个集合的差集、交集、并集
两个集合 set1 、set2
差集
SDIFF 【key1】【key2】 [【key_N】]
交集
SINTER 【key1】【key2】 [【key_N】]
并集
SUNION 【key1】【key2】 [【key_N】]
举例 :微博等网站的关注用户 ;或者 QQ、微信的好友 都可以放在一个集合中。交集就可以得出共同关系或者共同好友 ; 差集/并集就可以做出推荐好友等功能。插入值
HSET 【key】 【字段名】【字段值】 [ 【字段名_N】【字段值_N】] 或 HMSET 【key】 【字段名】【字段值】 [ 【字段名_N】【字段值_N】] 这两效果一样
取出值
HGET 【key】【 field】
同时获取多个值
HMGET 【key】【field1】[ 【field2】【field_N]
获取所有值
HGETALL 【key】
删除指定的字段
HDEL 【key】【field1】[【 field2】【field_N】]
查看 Hash 的长度
HLEN 【key】
判断某个字段是否存在
HEXISTS 【key】【field】
只获取字段名
HKEYS 【key】
只获取所有的字段值
HVALS 【key】
指定自增、自减
HINCRBY 【key】【field】【步长】
如果存在就不能新建,不存在才能创建
HSETNX 【key】【field】【value】
应用:Hash 用来存放经常变更数据、对象信息比如可以存放一个对象 : user = {name ,age}添加数据
ZADD 【key】 [ NX|XX ] [ CH ] [ INCR ] score member [score member …]
可选参数解释
XX: 仅仅更新存在的成员,不添加新成员。NX: 不更新存在的成员。只添加新成员。CH: 修改返回值为发生变化的成员总数,原始是返回新添加成员的总数 (CH 是 changed 的意思)。更改的元素是新添加的成员,已经存在的成员更新分数。 所以在命令中指定的成员有相同的分数将不被计算在内。注:在通常情况下,ZADD返回值只计算新添加成员的数量。INCR: 当ZADD指定这个选项时,成员的操作就等同ZINCRBY命令,对成员的分数进行递增操作。查询集合元素
ZRANGE 【key】 【start】【 stop】[withscores]
可选参数说明:
withscores:显示 score ,如果需要显示直接在后面加上这个单词即可升序排序
ZRANGEBYSCORE 【key】【min】【max】[withscores]
可选参数说明:
withscores:显示 score ,如果需要显示直接在后面加上这个单词即可
降序排序
ZREVRANGE 【key】 【start】【end】[withscores]
可选参数说明:
withscores:显示 score ,如果需要显示直接在后面加上这个单词即可移除指定元素
ZREM 【key】【元素】
查询 ZSet 集合中元素个数
ZCARD 【key】
统计 score 在某区间内的元素个数
ZCOUNT 【key】 【min】【 max】
实际应用:set 能做的这个也可以 ;排序 ;带权重比如:学生成绩排序 ; 排行榜 ;普通的消息 score 设为 1 ,紧急的消息设为 2 。