redis集群搭建怎么分配内存的

 我来答
匿名用户
2017-05-10
展开全部
本文主要介绍一种通过Jedis&Sentinel实现Redis集群高可用方案,该方案需要使用Jedis2.2.2及以上版本,Redis2.8及以上版本。
一、安装redis
安装方法,可以参考:http://blog.csdn.net/codetomylaw/article/details/40395905
目的:搭建一主二从环境,192.168.18.19(主) 192.168.18.178 (从) 192.168.18.179(从)

部署redis完毕,所有端口都使用的默认端口6379
配置文件目录:/etc/redis
备份目录: /opt/soft/redis/backup
日志目录: /opt/soft/redis/log

192.168.18.178/179从服务器需要配置slaveof 192.168.18.19 6379

配置slave-priority,默认是100
178 配置为50,179配置为100
当Master挂掉的时候Sentinel会优先选择slave-priority值较小的作为新的Master。

验证:当往Master写入数据的时候,slave可以同步数据,说明环境搭建完成。

二、配置sentinel
参考:http://blog.csdn.net/codetomylaw/article/details/41011543

配置成守护进程
daemonize yes
配置日志输出目录
logfile "/opt/soft/redis/log/sentinel.log”

配置monitor的Master redis
sentinel monitor mymaster 192.168.18.19 6379 2

部署了3个sentinel进程,分别在192.168.18.19、 192.168.18.178、192.168.18.179上,配置文件sentinel.conf 相同。

你会发现:sentinel.conf 配置文件是动态的,文件多了如下内容
sentinel known-slave mymaster 192.168.18.179 6379
sentinel known-sentinel mymaster 192.168.18.179 26379 9a00533bb48c8c860b0f373d9594b5126d1a1db9
sentinel known-sentinel mymaster 192.168.18.19 26379 738264461625b563f367683b234d9b4c1d971972
sentinel current-epoch 0

三、程序验证
[html] view plain copy
Set<String> sentinels = new HashSet<String>();
sentinels.add(new HostAndPort("192.168.18.19", 26379).toString());
sentinels.add(new HostAndPort("192.168.18.178", 26379).toString());
sentinels.add(new HostAndPort("192.168.18.179", 26379).toString());
JedisSentinelPool sentinelPool = new JedisSentinelPool("mymaster", sentinels);
System.out.println("Current master: " + sentinelPool.getCurrentHostMaster().toString());

Jedis master = sentinelPool.getResource();
master.set("username","jack");
sentinelPool.returnResource(master);

Jedis master2 = sentinelPool.getResource();
String value = master2.get("username");
System.out.println("username: " + value);

能正常从redis获取信息说明配置完成。

四、内存升级方案
1)停掉一个从,升级内存,挂回
2)停掉另一个从,升级内存,挂回
3)停掉主,从两个从中选出一个主,升级内存,挂回 (以前的主变成了从)

五、多主多从集群搭建
待完善
浩海未央0L5
2017-04-23 · TA获得超过417个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:399万
展开全部
将用户ID作为查找key,把其他信息封装成一个对象以序列化的方式存储,这种方式的缺点是,增加了序列化/反序列化的开销,并且在需要修改其中一项信息时,需要把整个对象取回,并且修改操作需要对并发进行保护,引入CAS等复杂问题。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式