常用类型
一、String
1、最常用 set key value 、get key
2、同时设置、获取多个键值 MSET key value [key value....]
MGET key [key......]
3、数值增减
递增数字, INCR key
增加指定的整数 INCRBY key increment
递减数值 DECR key
减少指定的整数 DECRBY key decrement
4、获取字符串长度 STRLEN key
5、分布式锁 setnx key value
set key value [EX seconds][PX milliseconds] [NX][XX]
6、应用场景 商品编号、订单号采用INCR命令生成
是否喜欢的文章
二、Hash
redis hash ====>Map<String,Map<Object,Object>>
一次设置一个字段值 HSET key field value
一次获取一个字段值 HGET key field
一次设置多个字段值 HMSET key field value [field value...]
一次获取多个字段值 HMGET key field [field]
获取所有字段值 hgetall key
获取某个key内的全部数量 hlen
删除一个key hdel
应用场景 购物车早期,当前小中厂可用
三、List
双向链表, 向列表左边添加元素 LPUSH key value [value]
向列表右边添加元素 RPUSH key value [value]
查看列表 LRANGE key start stop
获取列表中元素的个数 LLEN key
应用场景 微信文章订阅公众号
四、Set 无序无重复 重点****
添加元素 SADD key member [member...]
删除元素 SREM key member [member...]
获取集合中的所有元素 SMEMBERS key 遍历这个set
判断元素是否在集合中 SISMEMBER key member
获取集合中的元素个数 SCARD key
从集合中随机弹出一个元素,元素不删除 SRANDMEMBER key [数字]
从集合中随机弹出一个元素,出一个删一个,SPOP key[数字]
集合运算 集合的差集运算A-B, 属于A但不属于B的元素构成的集合 SDIFF key [key]
集合的交易运算A交B,属于A 同时也属于B的共同拥有的元素构成的集合 SINTER key [key....]
集合的并集运算A并B,属于A或者属于B的元素合并后的集合 SUNION key [key.....]
应用场景 利用在社交平台,抽奖的时候用 SRANDMEMBER key ,抽出几个,SPOP是抽出后删除。新增点赞 加一个 就用 sadd pub:msgID 点赞用户ID1 点赞用户ID2。取消点赞 ,srem pub:msgID 点赞用户ID 。展现所有点在过的用户 SMEMBERS pub:msgID。点赞用户数统计 SCARD pub:msgID 。判断某个用户是否点过赞 SISMEMBER pub:msgID 用户ID
微博好友关注社交关系 用集合的命令
sadd s1 1 2 3 4 5 sadd s2 3 4 5 6 7
SINTER s1 s2 就是取s1 和s2的交集,假设即是关注了s1 又是关注了s2的人
五、Zset 向有序集合中加入一个元素和该元素的分数
添加元素 ZADD key score member [score member]
按照元素 分数从小到大的顺序 ,返回索引从start 到stop之间的所有元素 ZRANGE key start stop
获取元素的分数 ZSCORE key member
删除元素 ZREM key member [member]
获取指定分数范围的元素 ZRANGEBYSCORE key min max [WITHSCORE]
增加某个元素的分数 ZINCRBY key increment member
获取集合中元素的数量 ZCARD key
获取指定分数范围内的元素个数 ZCOUNT key min max
应用场景 ,根据商品销售对商品进行排序显示
例如 热搜
商品编号1001的销量是9,商品编号1002的销量是15
商品编号1001销量是9,1002销量是15 zadd goods:sellsort 9 1001 15 1002
1002销量又增加了2个 zincrby goods:sellsort 2 1002
商品销量前10名 zrange goods:sellsort 0 10 withscores