• 技术文章 >数据库 >Redis

    redis用在什么地方

    藏色散人藏色散人2019-06-19 11:10:21原创1114

    redis用在什么地方?

    redis应用场景

    ● 令牌(Token)生成

    ● 短信验证码

    ● 排行榜

    ● 消息队列

    Redis 中list的数据结构实现是双向链表,所以可以非常便捷的应用于消息队列(生产者 / 消费者模型)。消息的生产者只需要通过lpush将消息放入 list,消费者便可以通过rpop取出该消息,并且可以保证消息的有序性。如果需要实现带有优先级的消息队列也可以选择sorted set。而pub/sub功能也可以用作发布者 / 订阅者模型的消息。无论使用何种方式,由于 Redis 拥有持久化功能,也不需要担心由于服务器故障导致消息丢失的情况。(推荐:《Redis视频教程》)

    如果对于数据一致性要求高的话还是用RocketMQ等专业系统。

    由于redis把数据添加到队列是返回添加元素在队列的第几位,所以可以做判断用户是第几个访问这种业务

    队列不仅可以把并发请求变成串行,并且还可以做队列或者栈使用

    分布式锁

    验证前端的重复请求,可以通过redis进行过滤

    秒杀系统,基于redis是单线程特征,防止出现数据库“爆破”

    全局增量ID生成,类似“秒杀”

    计数器

    诸如统计点击数等应用。由于单线程,可以避免并发问题,保证不会出错,而且100%毫秒级性能!

    计数功能应该是最适合 Redis 的使用场景之一了,因为它高频率读写的特征可以完全发挥 Redis 作为内存数据库的高效。在 Redis 的数据结构中,string、hash和sorted set都提供了incr方法用于原子性的自增操作。

    例子:

    如果应用需要显示每天的注册用户数,便可以使用string作为计数器,设定一个名为REGISTERED_COUNT_TODAY的 key,并在初始化时给它设置一个到凌晨 0 点的过期时间,每当用户注册成功后便使用incr命令使该 key 增长 1,同时当每天凌晨 0 点后,这个计数器都会因为 key 过期使值清零。

    每条微博都有点赞数、评论数、转发数和浏览数四条属性,这时用hash进行计数会更好,将该计数器的 key 设为weibo:weibo_id,hash的 field 为like_number、comment_number、forward_number和view_number,在对应操作后通过hincrby使hash 中的 field 自增。

    如果应用有一个发帖排行榜的功能,便选择sorted set吧,将集合的 key 设为POST_RANK。当用户发帖后,使用zincrby将该用户 id 的 score 增长 1。sorted set会重新进行排序,用户所在排行榜的位置也就会得到实时的更新。

    以上就是redis用在什么地方的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:redis
    上一篇:redis性能有哪些问题 下一篇:redis事务有什么用

    相关文章推荐

    • redis缓存策略哪几种• redis客户端工具有哪些• redis性能有哪些问题• Linux安装Redis教程

    全部评论我要评论

  • 取消发布评论发送
  • 1/1

    PHP中文网