问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

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

发布网友 发布时间:2022-04-28 10:32

我来回答

3个回答

懂视网 时间:2022-04-30 14:34

前言:Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。

Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set --有序集合)和hash(哈希类型)。

    Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集合和有序集合。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务 器。

    Redis的所有数据都是保存在内存中,然后不定期的通过异步方式保存到磁盘上(这称为“半持久化模式”);也可以把每一次数据变化都写入到一个usr/localend only file(aof)里面(这称为“全持久化模式”)。


为了提升redis高可用性,我们除了备份redis dump数据之外,还需要创建redis主从架构,可以利用从将数据库持久化(数据持久化通俗讲就是把数据保存到磁盘上,保证不会因为断电等因素丢失数据。

    redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持两种持久化方式,一种是 Snapshotting(快照)也是默认方式,另一种是Append-only file(缩写aof)的方式。)

什么是redis的主从复制呢?

Redis主从复制,当用户往Master端写入数据时,通过Redis Sync机制将数据文件发送至Slave,Slave也会执行相同的操作确保数据一致;且实现Redis的主从复制非常简单。同时slave上还可以开启二级slave,三级slave从库,跟MySQL的主从类似。

    安装redis可以参考上一次课程哦,这里直接安装slave,只需要在slave redis.conf配置文件中加入如下语句即可:

slaveof 192.168.33.10 6379  # slaveofmaster的ip master的端口。

一、安装Keepalived:

tar zxf keepalived-1.2.1.tar.gz 
cd keepalived-1.2.1&&./configure --with-kernel-dir=/usr/src/kernels/2.6.18* &&make&& make install 
DIR=/usr/local/ ;cp $DIR/etc/rc.d/init.d/keepalived  /etc/rc.d/init.d/
cp $DIR/etc/sysconfig/keepalived /etc/sysconfig/ &&mkdir -p /etc/keepalived
cp $DIR/sbin/keepalived /usr/sbin/

二、配置Keepalived:

vi /etc/keepalived/keepalied.conf

! Configuration File for keepalived 

global_defs { 
   notification_email{ 
      wgkgood@139.com 
   } 
   notification_email_fromwgkgood@139.com 
   smtp_server127.0.0.1 
   smtp_connect_timeout30 
   router_idLVS_DEVEL 
} 
# VIP1 
vrrp_instance VI_1 { 
    state BACKUP   
    interface eth0 
   lvs_sync_daemon_inteface eth0 
    virtual_router_id151 
    priority 100 
    advert_int 5 
    nopreempt 
    authentication { 
        auth_typePASS 
        auth_pass2222 
    } 
    virtual_ipaddress{ 
        192.168.33.100 
    } 
} 
virtual_server 192.168.33.100 6379 { 
    delay_loop 6    
    lb_algo wrr    
    lb_kind DR   
    persistence_timeout60    
    protocol TCP         
    real_server 192.168.33.10 6379 { 
        weight 100        
        notify_down/data/sh/redis.sh 
        TCP_CHECK { 
        connect_timeout10 
        nb_get_retry3 
        delay_before_retry3 
        connect_port6379 
        } 
    } 
}

三、从Keepalived配置:

Redis从服务器配置keepalived.conf跟master一样,只需要把Realserver IP修改成:

 real_server 192.168.33.11 ;优先级从100改成90即可。

vi /etc/keepalived/keepalied.conf

! Configuration File for keepalived 

global_defs { 
   notification_email{ 
      wgkgood@139.com 
   } 
   notification_email_fromwgkgood@139.com 
   smtp_server127.0.0.1 
   smtp_connect_timeout30 
   router_idLVS_DEVEL 
} 
# VIP1 
vrrp_instance VI_1 { 
    state BACKUP   
    interface eth0 
   lvs_sync_daemon_inteface eth0 
    virtual_router_id151 
    priority 90 
    advert_int 5 
    nopreempt 
    authentication { 
        auth_typePASS 
        auth_pass2222 
    } 
    virtual_ipaddress{ 
        192.168.33.100 
    } 
} 
virtual_server 192.168.33.100 6379 { 
    delay_loop 6    
    lb_algo wrr    
    lb_kind DR   
    persistence_timeout60    
    protocol TCP         
    real_server 192.168.33.11 6379 { 
        weight 100        
        notify_down/data/sh/redis.sh 
        TCP_CHECK { 
        connect_timeout10 
        nb_get_retry3 
        delay_before_retry3 
        connect_port6379 
        } 
    } 
}

四、创建切换脚本:

在master、slave数据库上创建/data/sh/redis.sh脚本,内容为:

  /etc/init.d/keepalived stop

然后分别重启两台Redis数据库上keepalived服务即可。

最后测试停止master Mysql服务,是否会自动切换到Backup上即可。

本文出自 “吴光科-京峰Linux运维培训” 博客,请务必保留此出处http://wgkgood.blog.51cto.com/1192594/1690864

Redis+Keepalived内存数据库集群配置

标签:

热心网友 时间:2022-04-30 11:42

本文主要介绍一种通过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)停掉主,从两个从中选出一个主,升级内存,挂回 (以前的主变成了从)

五、多主多从集群搭建
待完善

热心网友 时间:2022-04-30 13:00

将用户ID作为查找key,把其他信息封装成一个对象以序列化的方式存储,这种方式的缺点是,增加了序列化/反序列化的开销,并且在需要修改其中一项信息时,需要把整个对象取回,并且修改操作需要对并发进行保护,引入CAS等复杂问题。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
我在石家庄我的显卡坏了过了保修期我想问一下哪里可以修? 梦见蹲了半天的茅房 2016寒假小结作文怎么写 荣耀9,为什么电量现在越来越不耐用,之前更 哪些是易燃易爆场所 加油站有哪些消防安全隐患 说美国和苏联可以毁灭地球若干次的说法是怎么算出来的? 上证指数的年线怎么看? 早教中心需要什么证件 开办早教中心需要哪些许可证 为什么redis内存不宜过大 虚拟机搭建redis分布式环境需要多大内存 怎么用蜂蜜做美白保湿面膜? redis怎么动态添加内存,动态配置,无需重启 redis maxmemory默认值是多少 win10家庭版看不全局域网的共享电脑怎么解决? windows redis memory limit 设置多少 redis 最大内存 多大 股票定价理论和方法 redis设置lru启动,存数据的时候还是会出现oom情况? 一个关于股票估値的问题 自由现金流折现法DCF的一些简单问题 dcf模型中,哪些因子比较敏感 低利率环境下,你们学的DCF模型都将失效,怕不怕 DCF的假设一共有哪些 如何使redis常驻内存 一个人用不同的手机号码贷网贷是否是一个征信? 有没有只需实名认证手机号的网贷软件或平台? 网贷-求助下有没有跟微博借钱差不多的app,手机号码不用本人实名,没回访电话,日常没电话*扰的? 任何网贷平台在办理贷款时都需要本人手机号验证码吗? 为什么马睡觉不用闭眼 马睡觉为什么是睁着眼睛的?人睡觉为什么是闭着眼睛的? 马是睁着眼睛睡觉吗 为什么马睡觉是睁着眼睛睡觉 狼人杀怎么用双开助手炸房? 马是怎样睡觉的 求狼人杀炸房软件。 为什么牛睡觉不合眼,马睡觉站立着? 狼人杀一个手机怎么炸房 马是怎么睡觉的? 狼人杀怎么炸房? qq狼人杀怎么炸房间 马为什么能够站着睡觉,猫头鹰为什么睁开眼睛睡觉 狼人杀炸房软件 为什么任何动物,都要闭上眼睛才能睡着? 狼人杀炸房用什么软件啊,还有狼人杀怎么可以一直说话啊,然后找一个可以教我的*有吗。 十二生肖什么动物是睁开眼睛睡觉的 《狼人杀》怎么卡麦炸房? 马为什么不用睡觉 狼人杀怎么炸房教一下