摘要:缓存尽可能设置过期时间 如果不设置过期时间,缓存的内存就会越占越多,最后内存用完了,就没法缓存了。 注意缓存雪崩 缓存雪崩 (Cache Avalanche) :是指在某一时刻发生大量的缓存失效,导致瞬间大量的请求直接打到了数据库,可能会导致数据库瞬间压力过大甚至宕机。 为避免缓存雪崩,可以: 设置
阅读全文
摘要:延时队列 在开发中,有时需要使用延时队列。 比如,订单15分钟内未支付自动取消。 jdk延时队列 如果使用 jdk自带的延时队列,那么服务器挂了或者重启时,延时队列里的数据就会失效,可用性比较差。 Redisson延时队列 可以使用Redisson的延时队列。 Redisson的配置 详情见: ht
阅读全文
摘要:@Cacheable 注解的使用 开发中经常会使用Redis 缓存,可以使用 @Cacheable 相关的注解来操作缓存。 详情见:https://blog.csdn.net/sinat_32502451/article/details/134310654 CacheManager @Cacheab
阅读全文
摘要:使用场景 在开发中,需要使用缓存时,可以使用 @Cacheable 、 @CachePut 、@CacheEvict 注解。 注意: @Cacheable 、 @CachePut 、@CacheEvict 是基于 Aop 动态代理实现的。 因此,如果在同一个类里面,调用 @Cacheable 注解的
阅读全文
摘要:依赖包: 不要使用太低的 版本,低版本有内存泄露的问题。可以使用 3.18 及以上的版本。 <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.18.1</version>
阅读全文
摘要:### Redis工具类 ``` import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redi
阅读全文
摘要:### 依赖包: ``` org.springframework.boot spring-boot-starter-data-redis org.apache.commons commons-pool2 ``` ### 配置文件 如果是 properties 文件,使用: ``` spring.re
阅读全文
摘要:Redis 批量操作 如果频繁地使用Redis,比如在 for循环中调用 redis,有时可能会报错: Could not get a resource from the pool。 这是因为 Redis的连接数是有限的,打开了Redis的连接,用完记得要关闭,如果连接数不够了就会报错。 Redis
阅读全文
摘要:Redis 批量处理 在开发中,有时需要对Redis 进行大批量的处理。 比如Redis批量查询多个Hash。如果是在for循环中逐个查询,那性能会很差。 这时,可以使用 Pipeline (管道)。 Pipeline (管道) Pipeline (管道) 可以一次性发送多条命令并在执行完后一次性将
阅读全文
摘要:Redis Q:Redis有哪些优势? 速度快,因为数据存在内存中 支持丰富数据类型,支持string,list,set,sorted set,hash 支持事务,操作都是原子性,所谓的原子性就是对数据的更改要么全部执行,要么全部不执行 丰富的特性:可用于缓存,消息,按key设置过期时间,过期后将会
阅读全文
摘要:RedisTemplate 如果想要在java中使用Redis相关的数据结构,要先注入RedisTemplate。 @Autowired private RedisTemplate<K,V> redisTemplate; 其中K,V类型,可以使用具体的类型,比如String或者其他具体类。 @Aut
阅读全文
摘要:(重点部分加粗) ###第9章 :单机NoSql 1.RedisServer有一个dbnum属性,默认值为16,所以Redis服务器会创建16个数据库。 2.SELECT命令:切换数据库 原理:通过修改RedisClient.db指针,让它指向服务器中的不同数据库,从而实现切换数据库的功能。 3.数
阅读全文
摘要:分布式锁(string) setnx key value,当key不存在时,将 key 的值设为 value ,返回1。若给定的 key 已经存在,则setnx不做任何动作,返回0。 当setnx返回1时,表示获取锁,做完操作以后del key,表示释放锁,如果setnx返回0表示获取锁失败。设置过
阅读全文
摘要:大多数互联网系统都是分布式部署的,分布式部署确实能带来性能和效率上的提升,但为此,我们就需要多解决一个分布式环境下,数据一致性的问题。 当某个资源在多系统之间,具有共享性的时候,为了保证大家访问这个资源数据是一致的,那么就必须要求在同一时刻只能被一个客户端处理,不能并发的执行,否者就会出现同一时刻有
阅读全文
摘要:分布式分为分布式缓存(Redis)、分布式锁(Redis或Zookeeper)、分布式微服务(Dubbo或SpringCloud)、分布式服务协调(Zookeeper)、分布式消息队列(Kafka、RabbitMq)、分布式事务、分布式搜索(elastaticSearch)等。 不可能所有分布式内容
阅读全文
摘要:Redis 集群的 TCP 端口(Redis Cluster TCP ports) 每个 Redis 集群节点需要两个 TCP 连接打开。正常的 TCP 端口用来服务客户端,例如 6379,加 10000 的端口用作数据端口,在上面的例子中就是 16379。 第二个大一些的端口用于集群总线(bus)
阅读全文
摘要:一、简介 redis集群是一个无中心的分布式Redis存储架构,可以在多个节点之间进行数据共享,解决了Redis高可用、可扩展等问题。 redis集群提供了以下两个好处: 将数据自动切分(split)到多个节点 当集群中的某一个节点故障时,redis还可以继续处理客户端的请求。 集群中的主从复制 集
阅读全文
摘要:在使用Redis的哨兵Sentinel配置时,报错如下: redis.clients.jedis.exceptions.JedisException: Can connect to sentinel, but myMaster seems to be not monitored. 报错原因: 可能是
阅读全文
摘要:一、报错:* MASTER <-> SLAVE sync started # Error condition on socket for SYNC: No route to host解决:详情见: https://blog.csdn.net/qq_28538407/article/details/8
阅读全文
摘要:Redis安装与部署 版本最好选择3.0及以上。以后还可以部署Redis集群。 1.下载: 2.解压: 3.编译、安装: 4.拷贝配置文件,方便以后使用 5.修改配置: 7.服务端启动,指定配置文件redis.conf启动 8.客户端启动: 主从架构 主从架构设计的思路大概如下(注意:只是大概情况,
阅读全文