谈一谈redis集群(三)

上次redis 测试redis集群 在master节点崩掉的状况下集群的可用性.  涉及到一个问题,程序如何在主节点失效的状况下支持切换主节点, 这里是基于spring boot 集成redis 。java

step1: node

application.propertiesredis

# name of Redis server
spring.redis.sentinel.master=devmaster
# comma-separated list of host:port pairs
spring.redis.sentinel.nodes=127.0.0.1:26379,127.0.0.1:26380

step2: spring

controller.javaapp

@RequestMapping("/editUser")
@ResponseBody
public String editUserCache( @RequestParam(value="userId",required = false) long userId,
                             @RequestParam(value="firstName",required = false) String firstName
){
    User user=new User();
    user.setId((long)userId);
    user.setFirstName(firstName);

    ValueOperations<String, String> ops = template.opsForValue();
    ops.set("user_"+user.getId(),user.getId()+","+user.getFirstName());
    return  "userId:"+user.getId().toString()+",userFirstName:"+user.getFirstName()+",userLastName:"+user.getLastName();
}

User.java测试

public class User {
    private Long id;
    private String firstName;
    private String lastName;

    public User(Long id,String firstName, String lastName) {
        this.id = id ;
        this.firstName = firstName;
        this.lastName = lastName;
    }

    public User() {
    }

    public Long getId() {
        return id;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
}

step3: ui

测试redis 集群环境 this

向boot发一个hhtp请求 日志

至关于在redis 加入一个User,对象.server

集群的结果:

step4:

已知7001是master,让它休眠 

step5:

再次插入记录

,再插入一条记录

再次记录都成功

日志不少,焦点是7001 ,查看它的部分日志

日志显示7001 开始时master后来失去链接,最后成为7002的slave 。

相关文章
相关标签/搜索