Redis环境搭建
前置需求:要先安装GCC yuminstall gcc-c++
1、下载redis-3.0.0-rc2.tar.gz,放到/usr/local/software
2、解压:tar -zxvf redis-3.0.0-rc2.tar.gz -C/usr/local
3、进入到解压目录下:cd usr/local/redis-3.0.0-rc2,编译:make
4、进入到src下进行安装:make install,并验证。验证方法:用ll查看src下的目录,有redis-server(Server脚本)和redis-cli(Client脚本)即可
5、建立俩文件夹存放redis命令和配置文件
mkdir -p/usr/local/redis/bin
mkdir -p/usr/local/redis/etc
6、把redis-3.0.0-rc2下的redis.conf复制到/usr/local/redis/etc下:
cp redis.conf/usr/local/redis/etc/
7、把redis-3.0.0-rc2/src里的mkreleasehdr.sh、redis-benchmark、redis-check-aof、redis-check-dump、redis-cli、redis-server文件移动到bin下
mv mkreleasehdr.shredis-benchmark redis-check-aof redis-check-dump redis-cli redis-server/usr/local/redis/bin
8、启动Redis服务并指定配置文件(建议以root用户身份启动):
./redis-server/usr/local/redis/etc/redis.conf
注意:要使用后台启动,所以修改redis.conf里的daemonize配置项,改为yes;同时修改dir配置(数据库文件存放路径):dir /usr/local/redis/etc/
9、验证启动是否成功:
用“ps -ef | grep redis”命令查看是否有redis服务
或者查看端口:netstat -tunpl | grep 6379
10、登录redis客户端
本地redis服务的登录方式:/usr/local/redis/bin/redis-cli
带参数登录:/usr/local/redis/bin/redis-cli -h 192.*.*.*-p 6379
退出客户端:quit
11、退出redis服务端:
/usr/local/redis/bin/redis-cli shutdown
Redis常用操作命令
Redis的五种基础数据类型:String、Hash、List、Set(无序)、ZSet(有序)
Redis持久化
Redis两种持久化机制:RDB、AOF,默认为RDB
RDB:在定期时间里面发起多少次操作,执行一次持久化操作,适用于测试
AOF:基于日志的持久化机制(Append Only Mode),适用于生产
通过修改redis.conf配置启用AOF机制:appendonly yes(yes表示开启AOF机制)
【其它】
可以用SSDB来做redis的持久化
Redis可以发布与订阅消息
Redis可以集成tomcat做Session共享
Redis主从复制
修改从节点的redis.conf配置,并重启Redis服务即可
需修改如下参数:
port<port-number>(每个节点的端口都要不同)
slaveof<master-ip> <master-port>
【其它】
Redis哨兵模式(sentinel)
Redis集群搭建
测试服务器主节点:10.10.0.120:6400
对应从节点:10.10.0.120:6401
主节点:10.10.0.111:6400
对应从节点:10.10.0.119:6401
主节点:10.10.0.119:6400
对应从节点:10.10.0.111:6401
Redis支持集群最小的单位为6个实例,3个主节点,3个从节点
集群搭建:至少要三个master
第一步:在local下创建redis-cluster,然后在其下分别创建6个文件夹:
[root@dark-li001local]# mkdir -p /usr/local/redis-cluster
[root@dark-li001local]# cd /usr/local/redis-cluster
[root@dark-li001redis-cluster]# mkdir 7001
[root@dark-li001redis-cluster]# mkdir 7002
[root@dark-li001redis-cluster]# mkdir 7003
[root@dark-li001redis-cluster]# mkdir 7004
[root@dark-li001redis-cluster]# mkdir 7005
[root@dark-li001redis-cluster]# mkdir 7006
第二步:把之前的redis.conf配置分别copy到700*下,进行修改各个文件内容,也就是对700*下的每一个copy的redis.conf文件进行修改,如下:
1.daemonize yes #使用后台服务启动
2.port 700* (分别对每个机器的端口号进行设置,如果是不同的机器则可以不用修改端口)
3.bind 192.168.1.*(必须要绑定当前机器的IP)
4.dir /usr/local/redis-cluster/700*/ (指定数据文件存放位置,必须要指定不同的目录,不然文件会丢失)
5.cluster-enabled yes (表示启动集群模式)
6.cluster-config-file nodes-700*conf
7.cluster-node-timeout 5000 (设置访问超时时间5s)
8.appendonly yes (启用AOP持久化机制)
9.pidfile /var/run/redis_700x.pid //pidfile文件
操作如下:
[root@dark-li001etc]# cp redis.conf /usr/local/redis-cluster/7001
[root@dark-li001etc]# vim /usr/local/redis-cluster/7001/redis.conf
编辑后的内容为:
然后把7001的redis.conf分别拷贝其他对应7002到7006文件夹下,并修改port 和dir 和
Cluster-config-filenodes-700*.conf
然后修改其他文件的内容:
[root@dark-li001etc]# cd /usr/local/redis-cluster/7001
[root@dark-li0017001]# ls
redis.conf
[root@dark-li0017001]# cp redis.conf /usr/local/redis-cluster/7002
[root@dark-li0017001]# cp redis.conf /usr/local/redis-cluster/7003
[root@dark-li0017001]# cp redis.conf /usr/local/redis-cluster/7004
[root@dark-li0017001]# cp redis.conf /usr/local/redis-cluster/7005
[root@dark-li0017001]# cp redis.conf /usr/local/redis-cluster/7006
[root@dark-li0017001]# cd ..
[root@dark-li001redis-cluster]# cd 7002
[root@dark-li0017002]# vim redis.conf
如图:
回车:
第三步:
由于redis集群需要使用ruby命令,所以需要安装ruby,安装步骤如下:
1. yum install ruby
2. yum install rubygems
3. gem install redis(安装redis和ruby的接口)
如图1:
安装完毕:
如图2:
安装完毕:
如图3:
这个安装要等会儿,可能国内网比较慢
第四步:
分别启动6个redis实例,然后检查是否启动成功
[root@dark-li001local]# /usr/local//redis/bin/redis-server /usr/local/redis-cluster/7001/redis.conf
[root@dark-li001local]# /usr/local//redis/bin/redis-server /usr/local/redis-cluster/7002/redis.conf
[root@dark-li001local]# /usr/local//redis/bin/redis-server /usr/local/redis-cluster/7003/redis.conf
[root@dark-li001local]# /usr/local//redis/bin/redis-server /usr/local/redis-cluster/7004/redis.conf
[root@dark-li001local]# /usr/local//redis/bin/redis-server /usr/local/redis-cluster/7005/redis.conf
[root@dark-li001local]# /usr/local//redis/bin/redis-server /usr/local/redis-cluster/7006/redis.conf
检查是否正常启动,如图表示都已经正常启动:
[root@dark-li001local]# ps -el | grep redis
第五步:首先到redis3.0的安装目录下,然后执行redis-trib.rb命令
1. cd /usr/local/redis3.0/src
2. /redis-trib.rb create --replicas 1192.168.239.131:7001 192.168.239.131:7002 192.168.239.131:7003192.168.239.131:7004 192.168.239.131:7005 192.168.239.131:7006如图集群就算是搭建成功了:
第六步:测试集群
如图克隆6个会话,每个会话对应连接到7001-7006:
去7002看:
去7004get:
发现数据还是从7002获取,为什么?
回到这张图可以看到7002对应从节点是7005
登录7005查看:
这里设置readonly只是使用客户端这样获取才会需要这样,在java代码中不需要我们设置,redis java包自动给我们做了这个事情,会自动依据算法去对应的节点上获取数据
第七步:查看集群状态、节点信息
登录到客户端:cluster info 、cluster nodes
搭建环境可能遇到的问题:
解决办法是 先安装rvm,再把ruby版本提升至2.3.3
http://www.cnblogs.com/carryping/p/7447823.html
centos 6.5安装rvm
http://www.lxway.com/629501421.htm
http://blog.youkuaiyun.com/lixwjava/article/details/50408070
参考上面的链接基本就可以解决