美文网首页
redis入门第一课:概念和应用场景

redis入门第一课:概念和应用场景

作者: 阿狸404 | 来源:发表于2019-04-18 16:05 被阅读0次

    1.redis是什么?

    redis是一个开源的,内存中以key-value键值对存储数据的服务器。
    redis的key,value的数据类型很广泛,包括字符串String,哈希hash,列表lists,有序集合sorted-set,集合sets,而且redis是基于内存的数据库,可持久化。

    2.redis的应用场景

    1.会话缓存
    分布式环境下,可用作session共享。
    2. 消息队列
    息队列是大型网站必用中间件,如ActiveMQ、RabbitMQ、Kafka等流行的消息队列中间件,主要用于业务解耦、流量削峰及异步处理实时性低的业务。Redis提供了发布/订阅及阻塞队列功能,能实现一个简单的消息队列系统。另外,这个不能和专业的消息中间件相比。
    3. 发布,订阅消息
    4. 缓存
    redis是基于内存的数据库,因此可用作缓存提升访问速率,而且减小数据库压力。同时redis也提供了多种内存回收策略。
    5. 排行榜
    redis提供的有序集合的数据类型能够实现排行榜功能。
    6. 计数器
    Redis的原子递增操作最常用的使用场景是计数器。
    使用思路是:每次有相关操作的时候,就向Redis服务器发送一个incr命令。
    例如这样一个场景:我们有一个web应用,我们想记录每个用户每天访问这个网站的次数。
    web应用只需要通过拼接用户id和代表当前时间的字符串作为key,每次用户访问这个页面的时候对这个key执行一下incr命令。
    这个场景可以有很多种扩展方法:

    • 通过结合使用INCREXPIRE命令,可以实现一个只记录用户在指定间隔时间内的访问次数的计数器
    • 客户端可以通过GETSET命令获取当前计数器的值并且重置为0
    • 通过类似于DECR或者INCRBY等原子递增/递减的命令,可以根据用户的操作来增加或者减少某些值 比如在线游戏,需要对用户的游戏分数进行实时控制,分数可能增加也可能减少。
      7. 分布式锁
      当资源在分布式环境下需要共享时,比如秒杀等场景,减库存。redis提供了setnx功能实现分布式锁,如果设置返回1,则表示成功获取锁。否则获取锁失败。
      8. 最新列表
      Redis列表结构,LPUSH可以在列表头部插入一个内容ID作为关键字,LTRIM可用来限制列表的数量,这样列表永远为N个ID,无需查询最新的列表,直接根据ID去到对应的内容页即可。

    相关文章

      网友评论

          本文标题:redis入门第一课:概念和应用场景

          本文链接:https://www.haomeiwen.com/subject/coctgqtx.html