类型
string
key 1024 字节
val 512 兆
命令:
set k v
getset k v 先获取再设置值
del k
incr k 不存在k 会先创建k 再默认0递增1为 1
decr k 不存在k 会先创建k 再默认0递减1为 -1
incrby k v 在k的v基础上增加v
decrby k v 在k的v基础上减少v
append k v 在k的v后面追加一个v 返回v的长度
hash
每个hash可以存储 4294967295 个键值对
命令
hset key k v
hmset key k v v ... 设置多个属性值
hmget key k k 获取多个属性值
hgetall key 全部获取到
hdel key k v 删除单个属性值
del key 可以删除整个集合
hincrby key k v 给v在v基础递增v
hexists key k 检测是否存在属性值 1/0
hlen key 长度
hkeys key 返回key以下所有的 k
hvals key 返回key以下所有的 v
list
命令
lpush key v v v ... 从左添加
lpushx key v 从左头部插入一个元素 如果key不存在则插入失败(类似插队)
lpop key 从左弹出
rpush key v v v ... 从右添加
rpushx key v 从右头部插入一个元素 如果key不存在则插入失败(类似插队)
rpop key 从右弹出
lrange key start(0) end (-1最后一个|-2倒数第二个...) 查看列表范围
llen key 查看元素个数
lrem key count v 依次移除 count 个 v
lrem key -count v 依次移除 count 个 v
lrem key 0 v 依次移除 所有的 v
lset key count v 第count(角标)个位置插入v (插队)
linsert key before vv v 依次且只在的第一个vv之前插入v (插队)
linsert key after vv v 依次且只在的第一个vv之后插入v (插队)
rpoplpush key1 key2 依次将 key1 右边的第一个弹出 然后将弹出的元素插入到 key2 的左边
tips:由于业务场景中在出现业务高峰的时候运用队列处理时 弹出的元素没有处理成功 这样就造成了弹出元素的业务丢失 为此为了解决该类问题 可以用 rpoplpush 来解决这个问题(举例:listA 为主业务队列, listB 为副业务队列 当listA被消费者弹出一个元素时 随即将元素添加到listB队列 等待业务处理完成时 即可将listB的元素删除 相当于做了一个备份的操作)
set
set可包含的最大元素数量是 4294967295
可以看做没有排序的集合 和 list 一样(set中不允许出现重复的元素 如果多次出现 只会保留一份内容)
命令
sadd key v v v ... 添加元素
srem key v v v ... 删除元素
smembers key 查看元素
sismember key v 查看 v 是否存在 (1/0)
sdiff key1 key2 返回 key1 与 key2 的差集
sinter key1 key2 返回 key1 与 key2 的交集
sunion key1 key2 返回 key1 与 key2 的并集(重复的会去掉)
scard key 返回 key 下的数量
srandmember key 返回 key 中随机的一个元素
sdiffstore key1 key2 key3 将 key2 与 key3 的差集存储到 key1
sinterstore key1 key2 key3 将 key2 与 key3 的交集存储到 key1
sunionstore key1 key2 key3 将 key2 与 key3 的并集存储到 key1
tips:应用场景例如两件商品同时购买过的用户有哪些 网站访问的ip有多少个...
sorted-set
sorted-set 与 set 之间的区别:都会有一个分数与之关联 redis正是通过这个分数为集合从小到大的排序 虽然值是唯一的 但是分数是可以重复的
命令
zadd key num v num v ... 给key键添加 num分数 到v(可以是多个 如果num重复 成功返回0 会修改为本次的num)
zscore key v 返回key下 v 的分数
zcard key 返回key下的长度
zrem key v v 删除key下的v
zrange key 0 -1 返回key下第一个到最后一个的v
zrange key 0 -1 withscores 返回key下第一个到最后一个的v与v对应的分数
zrevrange key 0 -1 withscores 以分数从大到小返回key的v 与 v对应的分数
zremrangebyrank key start end 以分数从大到小 有序的 从 start 到 end 之间删除
zremrangebyscore key startnum endnum 删除key下分数 从 startnum 到 endnum 之间的 v
zrangebyscore key startnum endnum limit start end 以分数从大到小 返回startnum 到 endnum 分数区间 的第 start 到 end结束
zincrby key num v 给 key 的 v 在 v 的基础上增加 num
zcount key startnum endnum 返回 key 下分数在 startnum 到 endnum 之间的个数
tips:主要的应用场景在于游戏的排名、微博的热点话题、游戏的积分... ...