一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第13天,点击查看活动详情
前言
Redis中存储数据是通过key-value格式存储数据的,其中value可以定义五种数据类型,分别是String(字符类型),Hash(散列类型),List(列表类型),Set(集合类型),SortedSet(有序集合类型,简称zset)
(string)字符类型
常用命令
- 取值:get key
- 赋值:set key value
- 取值并赋值:getset key value
- 数值自增(每次加1):incr key
- 数值自增(自定义步长,num为数字类型):incrby key num
- 数值自减(每次减1):decr key
- 数值自减(自定义步长,num为数字类型):decrby key num
- 仅当不存在时赋值:setnx key value
- 字符串追加(如果key不存在,相当于赋值操作):append key value
- 字符串长度:strlen key
- 同时设置多个值:mset key1 value1 key2 value2
- 同时获取多个值:mget key1 key2
场景
- 分布式锁
- 自增主键
- 商品订单号采用INCR命令生成
(hash)散列类型
常用命令
-
赋值:
设置一个字段值:hset key field value
设置多个字段值:hmset key field1 value1 field2 value2
当字段不存在时赋值:hsetnx key field value
-
取值:
获取一个字段值:hget key field value
获取多个字段值:hmget key field1 field2
获取所有字段值:hgetall key
-
删除:hdel key field1 field2
-
数字自增:hincrby key field num
-
字段是否存在:hexists key field
-
只获取字段:hkeys key
-
只获取字段值:hvals key
-
获取字段数量:hlen key
场景
记录商品信息 记录用户信息
(list)列表类型
常用命令
-
从左侧添加:lpush key value1 value2 value3
-
从右侧添加:rpush key value1 value2 value3
-
从左侧弹出一个元素:lpop key
-
从右侧弹出一个元素:rpop key
-
删除元素:
从左侧开始删除(count>0):lrem key count value
从右侧开始删除(count<0): lrem key count value
删除所有等于value的元素:lrem key 0 value
-
获取一个区间里的元素:lrange key start stop
-
获取所有元素:lrange key 0 -1
-
获取指定索引的元素的值:lindex key index
-
保留指定范围的元素:ltrim key start stop
-
在某个元素之前或之后插入值:linsert key before/after pivot value
-
将一个list的最后的一个元素转移到新的list里面:rpoplpush oldlist newlist
场景
商品评价列表按照时间顺序降序排序
(set)集合类型
常用命令
- 添加元素:sadd key value1 value2
- 移除元素:srem key value1 value2
- 查看所有元素:smembers key
- 判断某个元素是否存在:sismember key value1 value2
- 查看元素个数:scard key
- 求差集:sdiff key1 key2
- 求交集:sinter key1 key2
- 求并集:sunion key1 key2
- 从集合中弹出一个元素:spop key1
场景
抽奖
(sortedSet)有序集合类型
常用命令
- 添加元素:zadd key score member
- 移除元素:zrem key member
- 查看元素(从小到大):zrange key start stop withscores
- 查看元素(从大到小):zrevrange key start stop withscores
- 获取元素的分数:zscore key member
- 查看元素个数:zcard key
- 查看指定分数范围内的元素个数:zcount key min max
- 删除一个或多个元素:zrem key member
- 查询分数范围内的元素个数:zrnagebyscore key start stop
- 元素分数自增:zincrby key num member
- 按照排名范围删除元素:zremrangebyrank key start stop
- 按照分数范围删除元素:zremrangebyscore key min max
- 获取元素从小到大顺序的排名:zrank key member
- 获取元素从大到小顺序的排名:zrevrank key member
场景
- 销售量排名
- 点击率排名
- 评论量排名
结束
需要交流学习可以关注公众号【温故知新之java】,互相学习,一起进步