常用五种数据类型
字符串string
哈希hash
列表list
集合set
有序集合zset

——————————字符串string——————————
常见命令
set key value
mset key value1 [key2 value2...]
setnx key value  //存入一个不存在的key value,若成功返回1,存在返回0
get key
mget key1 [key2...]
del key [key2...]
expire key seconds  // 设置一个键过期时间

原子加减
incr key   key中的值加一
decr key  key中的值减一
incrby key increment  key中的值加上increment
decrby key increment  key中的值减去increment

应用场景
1)计数器,比如文章阅读量,转发次数,点赞次数
incr 文章id
2)分布式系统全局序列号
incrby orderid 10000   批量生成订单序列号
3)分布式锁,分布式session
setnx key
spring session + redis实现session共享

——————————哈希hash——————————
常见指令
hset key field value
hsetnx key field value
hmset key field value [filed1 value1 field2 value2...]
hget key field
hmget key field1 [field2...]
hdel key   
hdel key field1 [field2...]
hlen key  //返回hash表中field的数量
hgetall  key  //返回hash表中key所有的键值
hincrby key field increment   //给hash表中key中field键的值增加increment

应用场景
1)缓存对象
hmset user 1:name zhangsan 1:age 26
hmget user 1:name 1:age
1)购物车
用户id为key
商品id为field
商品数量为value

——————————list列表——————————
类似于链表结构
lpush key value [value1...]
rpush key value [value2...]
lpop key //移除并返回最左侧元素
rpop key //移除并返回最右侧元素
lrange key start stop  //返回列表key中指定区间内的元素,区间以偏移量start和stop指定

blpop key timeout //从key列表表头弹出一个元素,若列表中没有元素,阻塞等待timeout秒,如果timeout=0,一直阻塞等待
brpop key timeout//从key列表表尾弹出一个元素,若列表中没有元素,阻塞等待timeout秒,如果timeout=0,一直阻塞等待

应用场景
栈stack(FILO)
lpush+lpop
队列queue
lpush+rpop
阻塞队列blockingqueue
lpush+brpop
(有顺序的数据,比如消息流)

——————————set集合——————————
set常见命令

sadd key value [value1...]   //往集合key中存入元素,元素存在则忽略,若key不存在则新建
srem key value [value1...]   //从集合key中删除元素
smembers key //获取集合key中所有元素
scard key   //获取集合key的元素个数
sismember key member   //判断member元素是否存在于集合key中
srandmember key count    //从集合key中选出count个元素,元素不从key中删除
spop key count     //从集合key中选出count个元素,元素从key中删除

set集合操作
sinter key [key1...]   //交集运算
sinterstore  destination key [key1...]   //将交集结果存入新集合destination中
sunion key [key1...]   //并集运算
sunionstore  destination key [key1...]    //将并集结果存入新集合destination中
sdiff  key  [key1...]    //差集运算
sdiffstore  destination key [key1...]     //将差集结果存入新集合destination中

应用场景
1)微信抽奖小程序
从一批人当中抽取几个人
srandmember key [count]
或者抽完三等奖再抽二等奖...每次抽完删除
spop key 20
spop key 10
spop key 3

2)微信微博点赞,收藏(每个用户id只允许一次,不允许重复)

3)集合操作实现微博关注模型
共同关注 sinter zhangsanSet lisiSet
张三可能认识的人
sdiff zhangsanSet lisiSet

4)集合实现电商商品筛选
一个set存CPU型号为骁龙的所有手机
一个set存内存为8G的所有手机
一个set存系统为安卓的所有手机
sdiff set1 set2 set3完成筛选

——————————zset有序集合——————————
根据分值排序,分值相同根据value字典排序,英文字母默认排序
ZSet常用操作:

zadd key score member [score1 member1...]  //往有序集合key中加入带分值元素
zrem key member [member1...]//从有序集合key中删除元素
zscore key member   //返回有序集合key中元素member的分值
zincrby key increment member   //为有序集合key中元素member的分值加上increment
zcard key  //返回有序集合key中元素个数
zrange key start stop [withscores]   //正序获取有序集合key从start下标到stop下标的元素
zrerange key start stop [withscores]   //倒序获取有序集合key从start下标到stop下标的元素

 Zset集合操作:
zunionstore destkey numkeys key [key1...]   //计算给定的一个或多个有序集的并集,并存储在新的 key 中
zinterstore  destkey numkeys key [key1...]   //计算给定的一个或多个有序集的交集,并存储在新的 key 中

Zset应用场景
Zset集合操作实现排行榜
1)点击新闻
ZINCRBY  hotNews:20220901  1  中秋月亮
2)展示当日排行前十
ZRERANGE hotNews:20220901 0 9 WITHSCORES
3)七日搜索榜单计算
ZUNIONSTORE hotNews:20220901-20220907 7 hotNews:20220901 hotNews:20220902 ... hotNews:20220907
 4)展示七日排行前十
ZRERANGE hotNews:20220901-20220907 0 9 WITHSCORES

Redis五大数据类型常用命令与使用场景总结相关推荐

  1. Redis五大数据类型常用命令

    Redis五大数据类型 Redis-Key 1.查看当前数据库的key keys * #返回当前数据库下的所有key 2.设置key set key value 3.获取key的value get k ...

  2. redis set数据类型常用命令及应用场景

  3. 解析Redis操作五大数据类型常用命令

    摘要:分享经常用到一些命令和使用场景总结,以及对Redis中五大数据类型如何使用cmd命令行的形式进行操作的方法. 本文分享自华为云社区<Redis操作五大数据类型常用命令解析>,作者:灰 ...

  4. redis hash数据类型常用命令

    可以对field进行数值计算:hincrbyfloat sean age -1 应用场景:点赞.收藏等.

  5. redis sorted_set数据类型常用命令及跳表skip_list原理

  6. Redis五大数据类型与使用场景汇总!!(含完整实战案例,建议收藏)

    本文全面讲述了Redis的五大数据类型和使用场景,含完整实战案例,强烈建议收藏!! 大家好,我是冰河~~ 最近面试跳槽的小伙伴有点多,给我反馈的面试情况更是千差万别,不过很多小伙伴反馈说:面试中的大部 ...

  7. note.. redis五大数据类型

    redis 五大数据类型使用 nosql介绍,由来 什么是nosql 阿里巴巴的架构 nosql 四大分类 redis入门 概述 redis 安装 (docker) 基础的知识 redis五大数据类型 ...

  8. (一)Redis——五大数据类型及基础知识

    一位爱好技术的橘右京的哥哥橘左京 Redis--五大数据类型及基础知识(一) Redis 1.Redis命令 1.1 常用String命令 1.2 常用List命令 1.3 常用Hash命令 1.4 ...

  9. redis 介绍和常用命令

    redis 介绍和常用命令 redis简介 Redis 是一款开源的,基于 BSD 许可的,高级键值 (key-value) 缓存 (cache) 和存储 (store) 系统.由于 Redis 的键 ...

最新文章

  1. 德勤:2018年科技、传媒和电信行业未来趋势预测
  2. Java性能优化(3):通过私有构造函数强化不可实例化的能力
  3. asp.net控件开发基础(1)
  4. transform css3 的使用及理解
  5. Beta冲刺——星期三
  6. asp.net DataGridTree表格树控件 下拉树 DropTree c# .net
  7. 电商主题BANNER传统促销喜庆红色节日海报,C4D打造时尚场景
  8. 在Eclipse中手动安装pydev插件
  9. 微星小飞机界面翻译_软件 | 第二款翻译利器推荐
  10. C语言数据结构、十字链表的分析及实现
  11. 广义加性模型(GAM)
  12. 如何修改开机背光亮度
  13. 跟着Cell学单细胞转录组分析(四):单细胞转录组测序UMAP降维聚类
  14. 基于Cohesie单元的二维水力压裂
  15. python实现触摸精灵功能_触摸精灵lua脚本实现微信群加好友功能
  16. 美啦:从工具到美妆共享经济平台的豹变
  17. 想改变Facebook? 先改变扎克伯格!
  18. Python之禅 的翻译和解释
  19. NOI / 1.5编程基础之循环控制——02:财务管理
  20. 在Linux下安装chrome浏览器(Ubuntu)

热门文章

  1. 减肥要吃...淡化色斑要吃....皮肤干燥要吃...长了小痘痘要吃...整天对着电脑要吃...记住这些
  2. 0基础学Java需要多久?
  3. c++实现经典游戏——贪吃蛇
  4. xbox one 手柄在ubuntu下的使用和开发
  5. 叮叮获取所有用户信息_钉钉小程序获取用户信息
  6. 【19周-星耀】FASTER!FASTER!FASTER!
  7. Fedora 33 安装wine-6.0 微信3.0
  8. 项目经理在团队不同阶段的领导风格
  9. 鸟与虫(四)pexels搜到的我都想要,
  10. Payment:支付宝即时到账接口接入教程