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

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是使用C编写的,内部实现了一个struct结构体redisObject对象,通过结构体...
    彦帧阅读 11,864评论 0 14
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 13,797评论 1 32
  • 包含的重点内容:JAVA基础JVM 知识开源框架知识操作系统多线程TCP 与 HTTP架构设计与分布式算法数据库知...
    消失er阅读 9,831评论 1 10
  • Nosql概述 在介绍Redis之前,首先先要介绍Nosql的概念。 互联网架构发展 在90年代的时候,计算机访问...
    COKIDCC阅读 3,923评论 0 1
  • 1. MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将...
    Snapeliu阅读 3,385评论 0 3