不想写太详细了,简单说一下本身的收获吧node
1,springboot整合redis集群很是简单,在配置文件中配置参数redis
spring: redis: # cluster: # nodes: 11.11.11.11:9001,11.11.11.11:9002,11.11.11.11:9003,11.11.11.11:9004,11.11.11.11:9005,11.11.11.11:9006 # max-redirects: 3 database: 0 host: 10.32.16.117 port: 6379 # password: 123456 timeout: 0 pool: max-active: 8 max-wait: -1 max-idle: 8 min-idle: 0
而后在想要操做redis的地方注入便可spring
@Autowired StringRedisTemplate redisTemplate;
简直太简单了。缓存
上面的配置是配置文件是链接单机的,集群的话,把上面的注释放开就行,redis会默认走集群springboot
2,还有就是主从拷贝,由于我发现我往集群中发一条数据,会在一个主节点中理科看到数据,但从节点看不到。查阅资料,发现缘由以下:数据结构
redis怎么进行主从复制呢?redis复制主要是经过master server持久化的rdb文件实现的。master server 先dump出内存快照文件,而后将rdb文件传给slave server,slave server 根据rdb文件重建内存表。redis复制过程以下:并发
一、slave server启动链接到master server以后,salve server主动发送SYNC命令给master servermaven
二、master server接受SYNC命令以后,判断,是否有正在进行内存快照的子进程,若是有,则等待其结束,不然,fork(岔)一个子进程,子进程把内存数据保存为文件,并发送给slave serverspring-boot
三、master server子进程进程作数据快照时,父进程能够继续接收client端请求写数据,此时,父进程把新写入的数据放到待发送缓存队列中server
四、slave server 接收内存快照文件以后,清空内存数据,根据接收的快照文件,重建内存表数据结构
五、master server把快照文件发送完毕以后,发送缓存队列中保存的子进程快照期间改变的数据给slave server,slave server作相同处理,保存数据一致性
六、master server 后续接收的数据,都会经过步骤1创建的链接,把数据发送到slave server
能够看到,这个过程是有时间的,因此从节点不是马上看到数据的。
maven依赖: 错误: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> 正确: <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-redis</artifactId> <version>1.4.7.RELEASE</version> </dependency>