![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
redis
小熊123~
优秀是一种习惯
展开
-
Redis实现消息队列
Redis MQ原创 2022-12-30 10:24:24 · 294 阅读 · 0 评论 -
redis中key过期监听
/** * redis中key过期监听(床垫不在床时间 channelRedisService的2号database) */// @Component@Transactional(rollbackFor = RuntimeException.class)public class RedisKeyExpiredNotOnBedMinutesListener { private final Logger LOGGER = LoggerFactory.getLogger(RedisKeyEx.原创 2020-08-13 11:38:22 · 472 阅读 · 0 评论 -
分布式锁(db,redis,zk)
基于数据库实现分布式锁悲观锁利用select … where … for update排他锁注意: 其他附加功能与实现一基本一致,这里需要注意的是“where name=lock”,name字段必须要走索引,否则会锁表。有些情况下,比如表不大,mysql优化器会不走这个索引,导致锁表问题。乐观锁所谓乐观锁与前边最大区别在于基于CAS思想,是不具有互斥性,不会产生锁等待而消耗资源,操作过程中认为不存在并发冲突,只有update version失败后才能觉察到。我们的抢购、秒杀就是...原创 2020-12-23 13:38:36 · 274 阅读 · 0 评论 -
Redis分布式锁(实例)
//加锁public Boolean tryLock(String key, String value, ExpireTime expire){ return smsRedisService.setIfAbsent(key, String.valueOf(System.currentTimeMillis()), ExpireTime.FIVE_MINUTES);}//解锁public void unLock(String key){ if(smsRedisService.hasK.原创 2021-01-07 14:01:28 · 89 阅读 · 0 评论 -
redisson分布式锁实例
<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.5.0</version> </dependency>import java.util.concurrent.Time...原创 2020-08-18 17:05:49 · 498 阅读 · 0 评论 -
多级缓存(Guava Cache本地缓存 + Redis分布式缓存)
Guava Cache本地缓存Redis分布式缓存原创 2020-08-27 13:55:21 · 1066 阅读 · 0 评论 -
缓存穿透 缓存击穿 缓存雪崩
目录缓存雪崩缓存穿透缓存雪崩雪崩是指当大量缓存失效时,导致大量的请求访问数据库,导致数据库服务器,无法抗住请求或挂掉的情况。 (1)合理规划缓存的失效时间; (2)合理评估数据库的负载压力; (3)对数据库进行过载保护或应用层限流; (4)多级缓存设计,缓存高可用;缓存穿透缓存一般是Key,value方式存在,当某一个Key不存在时会查询数据库,假如这个Key,一直不存在,则会频繁的请求数据库,对数据库造成访问压力...原创 2020-12-21 12:01:19 · 70 阅读 · 0 评论 -
Redis分布式锁
//Redis分布式锁,一般就是用Redisson框架就好了,非常的简便易用。<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.5.0</version></dependency> //获取锁RLock lock = redission.getLo.原创 2020-12-23 10:19:06 · 86 阅读 · 0 评论 -
Redis(数据类型、线程模型、过期策略、持久化)
Redis数据类型string set key val hash hset person name bingo hset person age 20 hset person id 1 hget person name person = { "name": "bingo", "age": 20, "id": 1 } list list 是有序列表,这个可以玩儿出很多花样。 比如可以通过 list 存储一些列表型的数据结构,类似粉丝列表、文章的评论列表之类的东西。原创 2020-12-24 17:17:24 · 122 阅读 · 3 评论 -
redis cluster
端口6379,1637916379 端口号是用来进行节点间通信的,cluster bus 的通信,用来进行故障检测、配置更新、故障转移授权。cluster bus 用了另外一种二进制的协议,gossip 协议,用于节点间进行高效的数据交换,占用更少的网络带宽和处理时间。节点间的内部通信机制redis cluster 节点间采用 gossip 协议进行通信 集群元数据的维护有两种方式:集中式、Gossip 协议。前者是将集群元数据存储在某个节点上,后者是每个节点都持有一份。 交换的信原创 2020-12-24 22:16:11 · 173 阅读 · 0 评论 -
生产环境中的 redis 是怎么部署的
redis cluster,10 台机器,5 台机器部署了 redis 主实例,另外 5 台机器部署了 redis 的从实例,每个主实例挂了一个从实例,5 个节点对外提供读写服务,每个节点的读写高峰qps可能可以达到每秒 5 万,5 台机器最多是 25 万读写请求/s。机器是什么配置?32G 内存+ 8 核 CPU + 1T 磁盘,但是分配给 redis 进程的是10g内存,一般线上生产环境,redis 的内存尽量不要超过 10g,超过 10g 可能会有问题。5 台机器对外提供读写,一共有 50g原创 2020-12-24 22:43:08 · 123 阅读 · 0 评论