redis主从复制集群
实现方式:选择一台redis服务器作为master节点(负责写操作),另外一台或多台服务器作为slave节点(负责读操作),slave节点上的数据完全由master节点同步过来。
作用:降低单节点redis服务器的读写负载,将读写分离到不同的服务器
提供数据的可用性
配置方式:
Master节点不用作任何变动
Slave节点上的配置文件redis.conf需要修改如下配置
#slaveof <masterip><masterport>
改为
salveof 127.0.0.1 6379
最好让服务器配成只读属性
salve-read-only yes123456
要想实现高可用即故障转移: 需要使用 keepalive
redis数据分片(Sharding)集群
实现方式:由若干台互不相干的redis服务器组成一个集群,互相独立,由集群的前置节点或者客户端实现将数据分散插入到集群中的各服务器上
作用:扩大数据存储的容量,降低单台服务器负载
步骤
首先准备两个服务器
其中两个服务器的服务名称和端口号要不相同,两个生产的dump.rdb文件要在不同的路径下面,而且第二个服务器不能打开主从服务器的配置,配置如下,要注释掉该配置
开启两个服务器,在后台运行
后台运行可以修改如下配置,将daemonize改为yes即可
开启两个客户端
然后编写分片集群的代码
public static void main(String[] args) { //poolConfig是连接池的配置参数
GenericObjectPoolConfig poolConfig = new GenericObjectPoolConfig() //shards是分片集群中所有分片服务器信息列表,JedisShardInfo是分片服务器信息
ArrayList<JedisShardInfo>shards = new ArrayList<>() //将集群中的两台shard服务器信息封装到两个JedisShardInfo对象中
JedisShardInfo shard1 = new JedisShardInfo("192.168.90.131",6379)
JedisShardInfo shard2 = new JedisShardInfo("192.168.90.131",6380) //将分片服务器信息对象添加到分片服务器信息列表shards中
shards.add(shard1)
shards.add(shard2) //创建一个带数据分片功能的jedis连接池
ShardedJedisPool shardedJedisPool = new ShardedJedisPool(poolConfig, shards) //从连接池中获取一个带数据分片功能的jedis连接
ShardedJedis jedis = shardedJedisPool.getResource() for (int i=0i<1000i++){
jedis.set("string-key-"+i,"1000"+i)
}
jedis.close()
shardedJedisPool.close()
}123456789101112131415161718192021222324252627282930
进行运行,查看结果
可以进行检测,6379端口的客户端是否存在6380端口的key
从图中可以看出,返回0,说明不存在
可以,通过ShardedJedisPool建立一个redis服务器池config是一些配置信息,redisList是redis服务器列表
ShardedJedisPool pool = new ShardedJedisPool(config,redisList)
在windows系统下安装多个Redis实例。服务器装有一个Redis实例,随着项目的进行,需要安装多个实例才可以。直接安装是只会有6379端口,需要采用下面的方式来安装。本示例讲解的是:redis-2.4.6-setup-64-bit.exe 和redis-2.8.17 windows MSOpen。工具/原料Redis安装文件
CMD命令提示符
方法/步骤
下载安装文件,选择稳定版本
点击安装exe文件,进行安装。选择好路径,一直到安装结束即可。
点击Service查看Redis服务是否正确的安装。Windows--》Service.msc。默认的端口为6379。服务已启动。
使用客户端工具进行连接,出现如下画面即成功。
使用CMD工具,安装另一个Redis实例服务,端口为6369. 需要提前建好6369端口使用的conf文件
如:C:\Users\Gray>E:\redis-2.8.17\redis-server.exe --service-install E:\redis-2.8.17\redis6369.conf --service-name RedisServer6369 --port 6369
试验了几次都没有提示成功的信息,但是查看服务成功了,而且用客户端连接也成功了。
查看6369端口的redis服务
步骤阅读
7
使用客户端连接6369 redis服务,出现如下界面表示成功
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)