Redis事务+持久化+主从复制+Redis集群
Redis事务
-
Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化、按顺序地执行。事务在执行的过程中,不会被其他客户端发送来的命令请求所打断。
-
Redis事务的主要作用就是串联多个命令防止别的命令插队。
-
-
Redis事务中的三个命令
-
Multi 、Exec 、 discard
-
错误处理
-
multi 攒命令
-
-
Redis的持久化
-
再谈Redis和MemeCache的区别
-
Redis支持持久化 MemCache 不支持
-
MemCache 只支持简单的key-value Redis除了简单的key-value之外还有五大数据类型
-
MemCache 是多线程加锁的形式 Redis是单线程+多路IO复用
-
-
两种持久化方式
-
RDB
-
flushdb后 dump.rdb文件会变小
-
在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是Snapshot快照,它恢复时是将快照文件直接读到内存里。
-
备份是如何执行的
-
默认shutdown时会持久化 一次 bgsave 手动持久化
-
其他配置
-
RDB方式的特点
-
AOF
-
-
-
Redis主从复制
-
就是主机数据更新后根据配置和策略,自动同步到备机的master/slaver机制
-
配置过程
-
命令
-
主机宕机时,从机如何操作
-
主机宕机时顶替主机
-
哨兵模式
-
-
测试
-
一主二仆
-
Redis 集群
-
为什么要集群?
-
容量不够,redis如何进行扩容?
-
并发读写操作,redis如何分摊?
-
-
分布式和集群的区别
-
分布式是把数据存放在多个机器上,每个机器放不一样的内容
-
集群是在多个机器上把数据平均分成n份,机器上可能有不一样的内容
-
-
-
搭建集群
-
准备6个实例,6379/6380/6381/6389/6390/6391
-
去中心化 模式的集群
-
-
将6个合体
-
-
Set<redis.clients.jedis.HostAndPort> set=new HashSet<redis.clients.jedis.HostAndPort>();
redis.clients.jedis.HostAndPort e=new redis.clients.jedis.HostAndPort("192.168.9.35", 6379);
set.add(e);
JedisCluster jCluster=new JedisCluster(set);
jCluster.set("k2", "v2");
System.out.println(jCluster.get("k2"));