1 redis持久化
- RDB持久化 数据库形式
save 表示更改了1个key时间隔900s进行持久化存储;更改了10个key300s进行存储 更改10000个key60s进行存储。 - AOF持久化日志形式
aof功能的开关 no/yes 日志名称
存储策略
aof日志尺寸相关
2 redis高可用
拷贝conf文件修改端口为6380 6381
修改从服务器conf文件
下图可以不设置
启动6379 6380 6381
查看各节点信息 info-- role
配置sentinel
sentinel monitor 这个1代表当集群中有1个sentinel认为master死了时才能真正认为该master已经不可用了
sentinel down-after-milliseconds mymaster 5000 心跳检测 5秒
sentinel parallel-syncs mymaster 1 指定了在执行故障转移时,最多可以有多少个从Redis实例在同步新的主实例,在从Redis实例较多的情况下这个数字越小,同步的时间越长,完成故障转移所需的时间就越长
启动 sentinel
3 jedis sentinel
public static void main(String[] args) {
// Jedis jedis = new Jedis("192.168.100.106", 6379);//指定Redis服务Host port
// jedis.auth(""); //如果Redis服务连接需要密码
Set<String> sentinels = new HashSet<String>();
sentinels.add("192.168.100.106:26379");
GenericObjectPoolConfig gPoolConfig = new GenericObjectPoolConfig();
gPoolConfig.setMaxIdle(10);
gPoolConfig.setMaxTotal(10);
gPoolConfig.setMaxWaitMillis(10);
gPoolConfig.setJmxEnabled(true);
//mymaster为sentinel.conf中配置的
JedisSentinelPool jedisSentinelPool = new JedisSentinelPool("mymaster", sentinels,gPoolConfig);
Jedis jedis = jedisSentinelPool.getResource();
// 字符串类型
jedis.set("name", "张三");
String value = jedis.get("name"); // getString
System.out.println(value);
long zongliang = jedis.incr("zongliang");
System.out.println(zongliang);
// 列表类型
jedis.lpush("citys", "北京", "上海", "南京");
List<String> citys = jedis.lrange("citys", 0, 2);
for (String city : citys) {
System.out.print(city);
}
jedis.close(); // 使用完关闭连接
jedisSentinelPool.close();
}