经验首页 前端设计 程序设计 Java相关 移动开发 数据库/运维 软件/图像 大数据/云计算 其他经验
当前位置:技术经验 » 数据库/运维 » Redis » 查看文章
Redis数据结构
来源:cnblogs  作者:徐知语的笔记  时间:2021/5/24 10:47:00  对本文有异议

一、String

string的应用场景

  • 分布式锁
  • 布隆过滤器
  • 缓存
  • 自增、自减:统计计数
  • 分布式主键ID生成:incrby orderId 10000  一次获取批量的ID ,批量获取减少与Redis交互的频率。
  • session共享

二、hash类型

hash的特点:

  • hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象,如果数据未取到,则返回 nil
  • 每个hash可以存储2^32-1个键值对
  • hash类型非常贴近对象的数据存储形式,并且可以灵活添加、删除对象属性。但hash设计初衷不是为了存储大量对象而设计的,切记不可乱用,更不可以将hash作为对象列表使用。
  • hgetall操作可以获取全部属性,如果内部field过多,遍历整体数据效率就会很低,有可能成为数据访问瓶颈。

hash的应用场景

1、购物车 :key=userId ,value 是各个商品对应的购买数量;

2、用户的信息

三、list

list可以实现:

 

 

队列

阻塞队列

BRPOPLPUSH :阻塞式等待,将列表 source 中的最后一个元素 (尾元素) 弹出,并返回给客户端。将 source 弹出的元素插入到列表 destination ,作为 destination 列表的的头元素。超时参数 timeout 接受一个以秒为单位的数字作为值。超时参数设为 0 表示阻塞时间可以无限期延长 (block indefinitely) 。 BRPOPLPUSH source destination timeout  ;这种方式可以避免数据弹出后处理业务失败 ,而数据丢失。我们可以通过LREM 删除处理成功的数据,也可以通过该指令获取处理失败的数据。

 四、set

1、抽奖:srandmember 可以随机获取元素,但是他不会剔除已经查询过的元素,即会重复抽奖

我们使用spop 抽奖可以移除已经获取的元素

 

 2、关注的人、按照交集可以实现共同关注的人

 

 五、zset 

zset是set的一个升级版本,他在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。 可以对指定键的值进行排序权重的设定,它应用排名模块比较多。

原文链接:http://www.cnblogs.com/jalja365/p/14786519.html

 友情链接:直通硅谷  点职佳  北美留学生论坛

本站QQ群:前端 618073944 | Java 606181507 | Python 626812652 | C/C++ 612253063 | 微信 634508462 | 苹果 692586424 | C#/.net 182808419 | PHP 305140648 | 运维 608723728

W3xue 的所有内容仅供测试,对任何法律问题及风险不承担任何责任。通过使用本站内容随之而来的风险与本站无关。
关于我们  |  意见建议  |  捐助我们  |  报错有奖  |  广告合作、友情链接(目前9元/月)请联系QQ:27243702 沸活量
皖ICP备17017327号-2 皖公网安备34020702000426号