redis 数据结构常用操作
2018-06-30 本文已影响0人
vckah
- keys *
获取当前所有 key-value 对 - 字符串
- getrange key start end
获取 key 从 start 到 end 的字符,是闭区间,与 Python 不同 - getset key value
将 key 设为 value,如果有旧值,返回旧值,如果是新 key,那么返回 nil - mget key1 key2
获取给定的多个 key - strlen key
获取 key 存储字符串的长度 - append key value
如果 key 存在,那么在 key 对应的字符串后添加,如果不存在,那么创建新 key。它返回添加后字符串的长度 - incr key 和 decr key
将 key 中存储的数字值加一/减一 - incrby/decrby key 数字
将 key 存储的数字值加上/减去给定的增量值 - msetnx key value [key value]
同时设置一个/多个,仅当给定的 key 不存在 - setnx key value
只有在 key 不存在时设置 key 的值 - setex key seconds value
将值 value 关联到 key ,并将 key 的过期时间设为 seconds (以秒为单位)。如果 key 已存在,那么就是覆盖
- getrange key start end
- 列表
列表 push 的时候是默认一直向右走的,即 lpush 每次 push 一个值,那么之前的值就会向右挪一位- lpush key value [key2, key3, ...]
从左向右放入列表中 - lrange key start end
从 start 开始到 end 取列表的值,闭区间,列表默认开始下标是 0。可以使用lrange key 0 -1
快速获取列表所有的值 - llen key
获取列表长度 - lindex key index
获取列表下标为 index 的元素 - lpop key
弹出列表的第一个元素,就是最左边的元素 - rpop key
弹出列表最后一个元素,就是最右边的元素。 - lset key index value
通过下标给列表的元素赋值 - rpush key value
给列表右侧添加值 - blpop key timeout
阻塞版本的 lpop,移出并获取列表的第一个元素, 如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。返回列表名 key 和 弹出的元素。没有会返回空 - ltrim key start stop
保留列表中从 start 到 stop 闭区间内元素,其它会被删除。
- lpush key value [key2, key3, ...]
- 哈希
是一个 string 类型的 field 和 value 的映射表。- hmset key field value field value
设置 hash 键值对 - hset key field value
设置单独一个字段的值 - hgetall key
获取 hash 的全部 - hget key field
获取 hash 中某一个字段的值 - hlen key
获取 hash 中字段的数量 - hmget key field1 field2
获取多个字段的值 - hsetnx key field value
只有在字段不存在时,才设置值 - hvals key / hkeys key
获取哈希表中所有值 / 字段 - hincrby key field increment
为 hash 中 key 指定的字段的整数值加增量 - hincrbyfloat key field increment
为 hash 中 key 指定的字段的浮点数加增量 - hdel key field1 [field2]
删除某个字段
- hmset key field value field value
- 集合
set 是 string 类型的无序集合。集合成员是唯一的。- sadd key vals1 [vals2]
向集合中添加一个或多个成员 - smembers key
获取集合当中的所有元素 - scard key
获取集合里元素个数 - sdiff key1 key2
key1 和 key2 的差集,即集合 1 中不在集合 2 中的 - sinter key1 key2
key1 和 key2 的交集 - sismember key value
判断 value 是否是 key 的成员,是返回 1 ,否返回 0 - spop key
移除并返回 key 中的一个随机元素,适合随机挑选 - srandmember key [count]
返回集合中一个或多个随机数,不加 count 是返回一个,后面跟 count 是返回多个随机数 - sunion key1 key2
返回 key1 和 key2 的并集
还有返回差集/并集并存储在额外的集合中。
- sadd key vals1 [vals2]
- 有序集合
有序集合,也是 string 类型的集合,不允许重复。但每个元素会关联一个 double 类型的分数,redis 通过分数来为集合中的成员进行从小到大的排序。- zadd key score1 value1 score2 value2
向有序集合中添加一个/多个元素,注意 score 是权重的意思 - zcard key
获取有序集合的成员数 - arem key value [value]
移除有序集合中的一个/多个成员 - zscore key value
返回有序集合中成员的分数值 - zcount key min max
返回有序集合中 [min,max] 区间的成员数
先写这么多方法吧,感觉这些是常用的。将来如若会用到其他的,会再增加。
- zadd key score1 value1 score2 value2