redis安装配置使用,redis集群配置,redis集群管理,redis集群使用,php使用redis集群

来源:互联网 发布:sql if else语句 编辑:程序博客网 时间:2024/06/05 21:10

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.confredis-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个哈希槽

然后再输入yesredis集群就开始分配哈希槽了。

至此,一个新的主节点就添加完成了,执行命令查看现在的集群中节点的状态

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和端口。我复制的别人的,但是我都测过了,没有问题。

我们连接客户端看下:

  1. redis-cli -h 192.168.33.13 -p 7009 -c
  2. 192.168.33.13:7009> get name1
  3. -> Redirected to slot [12933] located at 192.168.33.13:7003
  4. "1111"
  5. 192.168.33.13:7003> get name2
  6. -> Redirected to slot [742] located at 192.168.33.13:7000
  7. "2222"
  8. 192.168.33.13:7000> get name3
  9. -> Redirected to slot [4807] located at 192.168.33.13:7001
  10. "333"
  11. 192.168.33.13:7001>


6、php如何使用redis集群。去下边网址看看即可装下扩展,两种方法呢,随便挑一个即可。其他客户端使用例子请自行google

http://blog.csdn.net/qiguiting/article/details/51057989














0 0
原创粉丝点击