LVS+Redis部署手册
Redis是一个开源,先进的key-value存储,并用于构建高性能,可扩展的Web应用程序的完美解决方案。
Redis从它的许多竞争继承来的三个主要特点:
Redis数据库完全在内存中,使用磁盘仅用于持久性。
相比许多键值数据存储,Redis拥有一套较为丰富的数据类型。
Redis可以将数据复制到任意数量的从服务器。
REDIS优势
异常快速:Redis的速度非常快,每秒能执行约11万集合,每秒约81000+条记录。
支持丰富的数据类型:Redis支持最大多数开发人员已经知道像列表,集合,有序集合,散列数据类型。这使得它非常容易解决各种各样的问题,因为我们知道哪些问题是可以处理通过它的数据类型更好。
操作都是原子性:所有Redis操作是原子的,这保证了如果两个客户端同时访问的Redis服务器将获得更新后的值。
多功能实用工具:Redis是一个多实用的工具,可以在多个用例如缓存,消息,队列使用(Redis原生支持发布/订阅),任何短暂的数据,应用程序,如Web应用程序会话,网页命中计数等。
REDIS安装
在redis官网下载最新的源码包
http://download.redis.io/releases/redis-2.8.3.tar.gz
- 解压
# tar xzf redis-3.0.0.tar.gz
- 拷贝目录
# mv redis-3.0.0 /usr/local/redis
- 进入目录
# cd /usr/local/redis
- 编译
# make && make install
- 查看命令运行结果,如果是0则是成功
# echo $?
REDIS启动
# redis-server
第一次启动时可能会有提示的warning信息;可以忽略,但最好是按照提示的处理办法修改。
REDIS客户端启动
# redis-cli
验证客户端操作
# redis> set iom dtsoft
OK
# redis> get iom
“dtsoft”
REDIS主从同步
编辑主机配置文件
# vim redis.conf
daemonize yes –进程后台启动
logfile /usr/local/redis/redis.log –日志文件
syslog-enabled no –日志不写进系统日志
dir /usr/local/redis/data –数据文件存放
requirepass system –认证密码
编辑从机配置文件
# vim redis.conf
daemonize yes
logfile /usr/local/redis/redis.log
syslog-enabled no
dir /usr/local/redis/data
slaveof 192.168.10.5 6379 –主服务器的IP地址和端口
masterauth system –主服务器上的认证密码
启动服务
1、主机节点:
# cd /usr/local/redis/src/
# ./redis-server ../redis.conf –后面的配置文件一定要加上
2、从机节点:
# cd /usr/local/redis/src/
# ./redis-server ../redis.conf –后面的配置文件一定要加上
3、检查端口
分别在主从机上执行,查看两机相连端口是否是ESTABLISHED状态。
# netstat -antp | grep 6379
4、验证同步
主机节点:
# ./redis-cli
127.0.0.1:6379> set iom 123456
(error) NOAUTH Authentication required. –需要认证权限
127.0.0.1:6379> auth system
OK
127.0.0.1:6379> set iom 123456
OK
127.0.0.1:6379> get iom
“123456”
从机节点:
# ./redis-cli
127.0.0.1:6379> get iom –在从服务器不需要认证权限
“123456”
keepalived配置
路由机配置
编辑/etc/keepalived/keepalived.cnf文件
global_defs {
router_id LVS_MASTER #BACKUP上修改为LVS_BACKUP
}
vrrp_instance VI_1 {
state MASTER
interface eth0
virtual_router_id 51
priority 100
advert_int 1
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.10.252 #redis
}
}
virtual_server 192.168.10.252 6379 {
delay_loop 6
lb_algo rr
lb_kind DR
#lb_kind NAT
# persistence_timeout 3
protocol TCP
real_server 192.168.10.3 6379 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 6379
}
}
real_server 192.168.10.5 6379 {
weight 3
TCP_CHECK {
connect_timeout 3
nb_get_retry 3
delay_before_retry 3
connect_port 6379
}
}
}
重启keepalived服务
# service keepalived restart
redis主从机配置
编写执行脚本
#vi lvs_real
- #!/bin/bash
- #description:startrealserver
- VIP=192.168.10.252
- case “$1” in
- start)
- echo “startLVSofREALServer”
- /sbin/ifconfig lo:0 $VIP broadcast $VIP netmask 255.255.255.255 up
- echo “1”>/proc/sys/net/ipv4/conf/lo/arp_ignore
- echo “2”>/proc/sys/net/ipv4/conf/lo/arp_announce
- echo “1”>/proc/sys/net/ipv4/conf/all/arp_ignore
- echo “2”>/proc/sys/net/ipv4/conf/all/arp_announce
- sysctl –p >/dev/null 2>&1
- ;;
- stop)d
- /sbin/ifconfig lo:0 down
- echo “closeLVSDirectorserver”
- echo “0”>/proc/sys/net/ipv4/conf/lo/arp_ignore
- echo “0”>/proc/sys/net/ipv4/conf/lo/arp_announce
- echo “0”>/proc/sys/net/ipv4/conf/all/arp_ignore
- echo “0”>/proc/sys/net/ipv4/conf/all/arp_announce
- ;;
- *)
- echo “Usage:$0{start|stop}”
- exit 1
- esac
执行脚本
# /lvs_real start
系统测试
1、测试环境
VIP/路由机:192.168.10.252
redis主:192.168.10.3
redis备:192.168.10.4
客户机:192.168.10.1
2、测试过程
客户机运行redis客户端:
# redis-cli –h 192.168.10.252 –p 6379
redis:6379> auth system –第一次需要输入密码
OK
redis:6379> get iom
“123456”
关掉redis主机
客户机运行redis客户端
redis:6379> get iom
“123456” –仍能得到iom值
启动redis主机
客户机重启redis客户端
# redis-cli –h 192.168.10.252 –p 6379
路由机运行lvs监控命令。
# watch ipvsadm –lc
可以看到destination显示的是主节点IP。
每次客户机重启redis客户端,destination显示IP在主备节点替换(lvs路由配置为轮询,即lb_algo rr
)。
3、测试注意
- redis从节点默认配置为只读,客户机连接分配到从节点后只能执行查询操作,不能增删。从节点若想也可执行修改操作需将redis配置文件的slave-read-only选项改为no。
- 客户机只要没退出redis客户端,将一直固定连接同个redis节点。
- redis节点故障恢复后keepalived会立刻将其并入redis集群,但此时有可能恢复的redis节点数据比其它节点旧,一定要先同步数据再将其并入集群。
LVS+Redis部署手册的更多相关文章
- lvs fullnat部署手册(一)fullnat内核编译篇
标签:kernel rpm lvs fullnat 原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://shanks.blog.51c ...
- LVS+MYCAT+读写分离+MYSQL主备同步部署手册
LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1 配置MYSQL主备同步…. 2 1.1 测试环境… 2 1.2 配置主数据库… 2 1.2.1 ...
- 【转载】LVS+MYCAT+读写分离+MYSQL主备同步部署手册(邢锋)
LVS+MYCAT+读写分离+MYSQL主备同步部署手册 1 配置MYSQL主备同步…. 2 1.1 测试环境… 2 1.2 配置主数据库… 2 1.2.1 ...
- Redis学习手册(目录)
为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...
- MariaDB Galera Cluster部署手册
MariaDB Galera Cluster部署手册 galara保证双主数据库的同步及一致性 1.环境准备 基于新部署.最小化安装centos6.5 1> yum install opens ...
- Redis学习手册——转载
转载出处:http://www.cnblogs.com/stephen-liu74/archive/2012/04/16/2370212.html 为什么自己当初要选择Redis作为数据存储解决方案中 ...
- phpredis中文手册——《redis中文手册》 php版
本文是参考<redis中文手册>,将示例代码用php来实现,注意php-redis与redis_cli的区别(主要是返回值类型和参数用法). 目录(使用CTRL+F快速查找命令): Key ...
- Redis学习手册
为什么自己当初要选择Redis作为数据存储解决方案中的一员呢?现在能想到的原因主要有三.其一,Redis不仅性能高效,而且完全免费.其二,是基于C/C++开发的服务器,这里应该有一定的感情因素吧.最后 ...
- 突破LVS瓶颈,LVS Cluster部署(OSPF + LVS) - lxcong的运维技术 - 开源中国社区
突破LVS瓶颈,LVS Cluster部署(OSPF + LVS) - lxcong的运维技术 - 开源中国社区 突破LVS瓶颈,LVS Cluster部署(OSPF + LVS)
随机推荐
- centos yum源配置
5步搞定yum源配置 作者小波/QQ463431476欢迎转载! 第一步: 卸载原来的yum [root@localhost home]#rpm -qa|grep yum|xargs rpm -e - ...
- [转]Asp.net MVC 利用PartialView 构造自定义菜单
本文转自:http://www.cnblogs.com/huyq2002/archive/2012/01/06/2314838.html 在VS2010中利用Asp.net MVC自带的模板生成的菜单 ...
- 周五了啦啦啦啦-LAMP+PHP‘s OOP
hi 周五咯~~ 1.LAMP配置完结篇 五.LAMP配置环境优化 5.4 虚拟主机工作原理 apache的虚拟主机.virtual-host 用不同的域名访问不同的目录——手动模拟dns 修改hos ...
- 彻底解决mysql中文乱码的办法,修改mysql解压缩版(免安装版或zip版)字符编码
MySQL会出现中文乱码的原因不外乎下列几点:1.server本身设定问题,例如server字符编码还停留在latin12.table的语系设定问题(包含character与collation)3.客 ...
- Stanford机器学习笔记-3.Bayesian statistics and Regularization
3. Bayesian statistics and Regularization Content 3. Bayesian statistics and Regularization. 3.1 Und ...
- TRIM函数
Trim() 删除字符串首尾的空白(可以首尾一起,也可以指定首或尾,取决于控制参数),但会保留字符串内部作为词与词之间分隔的空格.
- Html5 Egret游戏开发 成语大挑战(二)干净的eui项目和资源准备
现在我们使用egret来起步开发一个名叫<成语大挑战>的小游戏,关于egret的开发环境就不在这里啰嗦了,直接去官方下载安装就可,egret是我见过开发环境部署最简单的解决方案,这个系列教 ...
- sublime配置文件
起初是为了解决 tab转四个空格问题 安装包 Sublime_Text_Build_3103_x64_CHS_Lfqy.exe 配置方法 配置脚本 { "bold_folder_labels ...
- MVC3中常用的一些控件及方法
1.返回提示框 string script = String.Format("<script>alert('登录状态已失效! 请重新登录系统');location.href='{ ...
- Spring JDBCTemplate使用JNDI数据源
xml配置: <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverMana ...