redis服务搭建有几种方式
redis主从复制集群
实现方式:选择一台redis服务器作为master节点(负责写操作),另外一台或多台服务器作为slave节点(负责读操作),slave节点上的数据完全由master节点同步过来。
作用:降低单节点redis服务器的读写负载,将读写分离到不同的服务器?
提供数据的可用性
配置方式:?
Master节点不用作任何变动?
Slave节点上的配置文件redis.conf需要修改如下配置
#slaveof
改为
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 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=0;i
鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com
图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!