基本

2 分钟阅读 398 字 + 200 词
redis能做什么?
1.缓存
2.排行榜zset
3.消息队列,利用Lists或者Stream来实现一个简单消息队列
4.分布式锁,利用redisson框架使用redis实现了一套分布式锁解决方案,但是存在一定限制, 业务超时解锁,导致并发问题,集群脑裂问题。
5.计数器,Redis的命令是原子性的,可以利用INCR和DECR来构建计数器系统,也可以用来做限流
6.连续签到,利用string,将key值设为cc_uid,然后设置每日零点过期,value为连续签到天数.
Redis高性能的原因
  1. 基于内存实现 :速度比磁盘IO块很多
  2. 使用IO多路复用模型。 :可以同时监听多个连接
  3. 单线程模型。 :不会因为创建线程消耗性能,避免上下文切换引起的CPU消耗,没有多线程切换的开销。避免了线程之间的竞争问题,不需要考虑各种锁问题。
  4. 高效的底层数据结构 :为了衡量空间和时间,有些数据类型甚至用了多种数据结构。
  5. 全局哈希表
单线程指的是Redis的网络IO以及field-value pairs命令读/写是由一个线程来执行的。Redis的持久化、集群数据同步、异步删除等操作都是其他线程执行的。
不过Redis从6.0版本开始支持多线程模型,多I/O线程模型只用来处理网络读写请求, 而Redis的读写命令依然是单线程处理的。
在使用redis时,几乎不存在CPU成为瓶颈的情况,Redis的性能瓶颈主要受限于内存。