springboot+redis

不想写太详细了,简单说一下本身的收获吧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>

相关文章
相关标签/搜索