你们Redis用在哪些业务上?用的什么存储结构

主要用做缓存,比如:验证码,分类缓存,数据字典缓存,权限数据缓存,登录信息缓存等。

String类型的存储结构用的比较多,并且使用了Json格式进行序列化。

淘汰策略有哪些?你们用的哪种

  • volatile-lru :从已设置过期时间的数据集中挑选最近最少使用的数据淘汰
  • volatile-ttl:从已设置过期时间的数据集中挑选将要过期的数据淘汰
  • volatile-random:从已设置过期时间的数据集中任意选择数据淘汰
  • allkeys-lru:从数据集中挑选最近最少使用的数据淘汰
  • allkeys-random:从数据集中任意选择数据淘汰
  • no-enviction:不使用淘汰

Redis事务和Mysql事务的区别

Mysql的事务是基于日志,记录修改数据前后的状态来实现的,而Redis的事务是基于队列实现的

Mysql中的事务满足原子性:即一组操作要么同时成功,要么同时失败,

Redis中的事务不满足原子性,即一组操作中某些命令执行失败了,其他操作不会回滚

因此对于比较重要的数据,应该存放在mysql中

使用Redis如何实现消息广播

Redis是使用发布订阅来实现广播的

订阅者通过 SUBSCRIBE channel命令订阅某个频道 , 发布者通过 PUBLISH channel message向该频道发布消息,该频道的所有订阅者都可以收到消息

为什么要使用Redis做缓存

一个字,快。

缓存它指的是将数据库的数据同步到内存中,客户端获取数据直接从内存中获取。由于内存读写速度大于磁盘,而使用缓存能减少磁盘读取,大大提高查询性能。

我们一般会将经常查询的,不会经常改变的热点数据,保存到缓存中,提高响应速度

缓存的执行流程

1.客户端发起查询请求

2.判断缓存中是否有数据

  • 如果有,直接返回
  • 如果没有,就从数据库查询,再把数据同步到缓存

3.返回数据给客户端