摘要:
使用redis的原因,缓存穿透和缓存雪崩 为什么使用redis而不使用map? map是本地缓存,随着jvm关闭而销毁,多实例时每个实例都要保存一份缓存。而redis是分布式缓存,多实例下只保存一份缓存,且提供持久化,即使服务器宕机数据也不会消失。 缓存穿透 访问大量没有做缓存的数据,导致大量请求落 阅读全文
摘要:
redis的其它模块:队列、位图、HyperLogLog、布隆过滤器、GeoHash 延时队列 实现队列的一种简单的方式:用zset,其中的score就是剩余时间。 还有一种实现简单队列的方式就是用redis中的list,可以用阻塞读命令blpop、brpop,这样在读不到数据时就会立即进入休眠状态 阅读全文
摘要:
Jedis、redis安全、Lua脚本、其他命令 Jedis的使用 基本用法:首先new一个jedispool,然后getResource取到jedis即可,最后jedis要关闭连接。 为了防止发生异常导致jedis没有关闭引发的连接池内连接数不够,要把close语句放在finally块里或者用tr 阅读全文
摘要:
订阅与发布:redis的PubSub 订阅: subscribe 具体频道 发布: publish 频道 内容 可以将具体内容发送到对应频道,同时订阅该频道的所有客户端都能接收到该消息。 订阅多个: subscribe 具体频道* 可以订阅具体名称开头的多个频道,即使后续增加了某个新的频道只要在这个 阅读全文
摘要:
事务和乐观锁watch redis使用multi开启事务,exec来执行,discard来回滚 事务中的指令会缓存在服务器中的一个事务队列中,服务器一旦受到exec指令就会顺序的执行所有指令并返回所有的运行结果,这些指令在运行时不会相互影响,因为redis是单线程的。 redis的事务并不是原子性的 阅读全文