redis是分布式的中间件 是一个nosql的数据库他以key value的形式存储数据redis可以用来做缓存,分布式锁,消息队列等等功能
个人认为redis 作为 缓存是他的主要功能,Rdeis基于内存所以读写速度快,mysql是基于磁盘的所以空间大和redis比读写速度慢,磁盘的空间比内存的空间便宜所以redis作为热点消息的存储区可以提升读写速度访问速度也可以减少mysql的压力
内存数据还有一个易丢失的特点,redis有一个持久化策略redis.conf
中有 RDB
和 AOF
两种持久化的配置RDB是以快照的形式存储(一个时间段的切片)AOF以日志的形式存储
RDB是以时间段的一个切片为存储节点,这个时间切面前可以保存,而这个时间段切面后的一系列操作不能保存
AOF是以执行指令后当日志存储节点保存,缺点存储量大过于频繁了
redis也可以作分布式锁 一般使用redisson组件 uuid+线程id做为key值保证加锁让一个线程能够执行关键的代码,watch dog作为监视线程的组件 如果还持有锁 就延长生存时间没有获取线程锁的会不断循环获取锁直到超时,
redis作消息队列Redis 5.0 版本数据类型:Stream与传统的消息队列相比较 redis具有反应速度快,轻量,减少硬件成本,最大的缺点就是消息不可堆基太多,多了会丢数据,消息生产者和消费者要配合好不然数据也容易丢失