1、yum快速安装
yum install epel-release #添加yum源
yum list all| grep -i redis #查看是否有redis可用安装包
yum install redis -y #安装redis
rpm -ql redis #查看安装的redis生成的可执行文件和配置文件位置
/usr/sbin/redis-server /etc/redis.conf #运行redis并指定配置文件
#客户端测试
[root@Centos-01 redis]# redis-cli
redis 127.0.0.1:6379> set name lucy
OK
redis 127.0.0.1:6379> get name
"lucy"
redis 127.0.0.1:6379>
#配置文件介绍去下边网址,或者自己google
http://www.runoob.com/redis/redis-install.html
#php客户端动态扩展库的安装。也可以直接yum安装。
http://blog.csdn.net/u012558554/article/details/51072369
#php使用redis例子。参看下边网址测试即可。
http://www.runoob.com/redis/redis-php.html
2、编译安装redis
wget http://download.redis.io/releases/redis-3.0.0.tar.gz #下载源码包
tar -xf redis-3.0.0.tar.gz #解压源码包
cd redis-3.0.0
make PREFIX=/usr/local/src/redis MALLOC=libc #指定安装目录,自己建个目录随意。“MALLOC=libc”指定内存分配器。
有可能报错的,如果发现错误如下:
zmalloc.h:50:31: error: jemalloc/jemalloc.h: No such file or directory
zmalloc.h:55:2: error: #error "Newer version of jemalloc required"
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/data0/src/redis-2.6.2/src'
make: *** [all] Error 2
如果报错指定MALLOC=libc
make PREFIX==/usr/local/src/redis install#指定安装目录,自己建一个随意。
/usr/local/src/redis/redis-server /usr/local/src/redis-3.0.0/redis.conf #启动redis并指定配置文件。想要后台启动加“&” 或者修改下配置文件,令“daemonize yes”即可
3、redis集群原理和搭建
参看:http://blog.csdn.net/zhu_tianwei/article/details/44928779
#上边第2步编译完成后,可以搭建集群了。步骤如下
#将集群工具复制到/usr/local/src/redis/bin下。主要是方便使用。不复制也没啥问题。
cp /usr/local/src/redis-3.0.0/src/redis-trib.rb /usr/local/src/redis/bin
#创建数据配置目录
mkdir -p /usr/local/src/redis/{conf,data,logs} #创建redis配置文件目录、数据目录、日志目录。方便管理
#创建集群提供配置文件
cp /usr/local/src/redis-3.0.0/redis.conf /usr/local/src/redis/conf/redis-6380.conf
cp /usr/local/src/redis-3.0.0/redis.conf /usr/local/src/redis/conf/redis-6381.conf
cp /usr/local/src/redis-3.0.0/redis.conf /usr/local/src/redis/conf/redis-6382.conf
#修改配置文件,其他的redis-6381.conf、redis-6382.conf同样修改。记得修改IP和端口号、还有文件名字。红色部分为3个配置文件的差异位置。
vim/usr/local/src/redis/conf/redis-6380.conf #替换原有文件。
#基本配置
daemonize yes
pidfile /usr/local/src/redis/data/redis-6380.pid
port 6380
bind 192.168.99.239 #我用一台机器做测试不用改了。你必须根据你的情况修改
unixsocket /usr/local/src/redis/data/redis-6380.sock
unixsocketperm 700
timeout 300
loglevel verbose
logfile /usr/local/src/redis/logs/redis-6380.log
databases 16
dbfilename dump-6380.rdb
dir /usr/local/src/redis/data/
#aof持久化
appendonly yes
appendfilename appendonly-6380.aof
appendfsync everysec
no-appendfsync-on-rewrite yes
auto-aof-rewrite-percentage 80-100
auto-aof-rewrite-min-size 64mb
lua-time-limit 5000
#集群配置
cluster-enabled yes
cluster-config-file /usr/local/src/redis/data/nodes-6380.conf
cluster-node-timeout 5000
#启动redis服务
cd/usr/local/src/redis
./bin/redis-server ./conf/redis-6380.conf ;tail -f logs/redis-6380.log
./bin/redis-server ./conf/redis-6381.conf ;tail -f logs/redis-6381.log
./bin/redis-server ./conf/redis-6382.conf ;tail -f logs/redis-6382.log
#查看下是不是有三个实例redis已经运行。现在他们还不是集群。
ps aux | grep redis
#创建集群
cd /usr/local/src/redis/
#我这里就不加slave节点了。你想测试的话直接在多加几个配置文件启动服务即可。
./bin/redis-trib.rb create --replicas 0192.168.99.239:6380192.168.99.239:6381192.168.99.239:6382
#如果你多加了几个redis服务的话,执行下边命令就可以创建主从。下边的意思就是一共3个主节点,每个主节点一个slave节点。
./bin/redis-trib.rb create --replicas 1 192.168.99.239:6380192.168.99.239:6381192.168.99.239:6382192.168.99.239:6383192.168.99.239:6384192.168.99.239:6385
#查看当前集群状况:自己看输出信息即可。看看那些机器是主,那些是从。每台主服务器上有多少slots。
./bin/redis-cli -c -h 192.168.99.239 -p 6380 cluster nodes
4、集群管理
参见:http://blog.csdn.net/xu470438000/article/details/42972123
#新节点添加到集群中,你先运行一个新的节点。上边有方法,给个配置文件就可以了。
./redis-trib.rb add-node 192.168.99.239:6386 192.168.99.239:6380 #6386就是我新加的redis实例。6380就是当前集群中的一个节点。
#查看下集群 是不是多了一个节点
./bin/redis-cli -c -h 192.168.99.239 -p 6380 cluster nodes
#把新加入的节点变为主节点或者从节点,这里偷懒了。直接用人家的,注意改下ip端口和路径信息。
4:增加了新的节点之后,这个新的节点可以成为主节点或者是从节点
4.1 把这个节点变成主节点,使用redis-trib程序,将集群中的某些哈希槽移动到新节点里面, 这个新节点就成为真正的主节点了。
执行下面的命令对集群中的哈希槽进行移动
cd /usr/local/redis3.0/src ./redis-trib.rb reshard 127.0.0.1:7000 |
系统会提示我们要移动多少哈希槽,这里移动1000个
然后还需要指定把这些哈希槽转移到哪个节点上,
输入我们刚才新增的节点的ID
f32dc088c881a6b930474fc5b52832ba2ff71899
然后需要我们指定转移哪几个几点的哈希槽
输入all 表示从所有的主节点中随机转移,凑够1000个哈希槽
然后再输入yes,redis集群就开始分配哈希槽了。
至此,一个新的主节点就添加完成了,执行命令查看现在的集群中节点的状态
redis-cli -c -p 7000 cluster nodes |
4.2:把这个节点变成从节点
前面我们已经把这个新节点添加到集群中了,现在我们要让新节点成为127.0.0.1:7001的从节点,只需要执行下面的命令就可以了,命令后面的节点ID就是127.0.0.1:7001的节点ID
redis-cli -c -p 7006 cluster replicate 0b00721a509444db793d28448d8f02168b94bd38 |
使用下面命令来确认一下127.0.0.1:7006是否已经成为127.0.0.1:7001的从节点
redis-cli -p 7000 cluster nodes | grep slave | grep 0b00721a509444db793d28448d8f02168b94bd38 |
看到下面图片中的情况就表示添加成功
Redis集群删除节点
1:如果删除的节点是主节点,这里我们删除127.0.0.1:7006节点,这个节点有1000个哈希槽
首先要把节点中的哈希槽转移到其他节点中,执行下面的命令
cd /usr/local/redis3.0/src ./redis-trib.rb reshard 127.0.0.1:7000 |
系统会提示我们要移动多少哈希槽,这里移动1000个,因为127.0.0.1:7006节点有1000个哈希槽
然后系统提示我们输入要接收这些哈希槽的节点的ID,这里使用127.0.0.1:7001的节点ID
然后要我们选择从那些节点中转出哈希槽,这里一定要输入127.0.0.1:7006这个节点的ID,最后输入 done 表示输入完毕
最后一步,使用下面的命令把这个节点删除
cd /usr/local/redis3.0/src/ ./redis-trib.rb del-node 127.0.0.1:7006 127.0.0.1:7006 |
2:如果节点是从节点的,直接使用下面的命令删除即可。
cd /usr/local/redis3.0/src/
./redis-trib.rb del-node 127.0.0.1:7006 127.0.0.1:7006
5、集群使用,注意ip和端口。我复制的别人的,但是我都测过了,没有问题。
我们连接客户端看下:
➜ redis-cli -h 192.168.33.13 -p 7009 -c
192.168.33.13:7009> get name1
-> Redirected to slot [12933] located at 192.168.33.13:7003
"1111"
192.168.33.13:7003> get name2
-> Redirected to slot [742] located at 192.168.33.13:7000
"2222"
192.168.33.13:7000> get name3
-> Redirected to slot [4807] located at 192.168.33.13:7001
"333"
192.168.33.13:7001>
6、php如何使用redis集群。去下边网址看看即可装下扩展,两种方法呢,随便挑一个即可。其他客户端使用例子请自行google
http://blog.csdn.net/qiguiting/article/details/51057989