redis安装
下载
- 下载地址:http://redis.io/download (这里下载的是Linux版的Redis源码包)
- Redis服务器端的默认端口是6379。
安装
-
通过SecureFXPortable工具,将Redis的源码包由windows上传到Linux系统
-
解压缩
tar -zxvf redis-3.0.0.tar.gz
- 切换到解压后的目录
cd redis-3.0.0
- 编译
make
注意:编译需要C语言编译器gcc的支持,如果没有,需要先安装gcc。
- 可以使用rpm -q gcc查看gcc是否安装。
- 利用yum在线安装gcc的命令 yum -y install gcc
- 如果编译出错,请使用make clean清除临时文件。之后,找到出错的原因,解决问题后再来重新安装
//执行命令可完成安装 make MALLOC=libc
- 进入到src目录
cd src
- 执行安装
make install
-
将原redis中的可执行文件和配置文件复制到自己创建的redis目录中
- 在/usr/local下创建redis目录
1.mkdir redis
- 在redis目录下创建bin目录
1.cd redis
2.mkdir bin
- 在redis目录下创建etc目录
1.mkdir etc
- 将在/chenmin/web/redis-3.0.0/src下的可执行文件复制到/usr/local/redis/bin目录下
1.cd /chenmin/web/redis-3.0.0/src
2.cp mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server redis-sentinel /usr/local/redis/bin
- 将/chenmin/web/redis-3.0.0/下的配置文件redis.conf复制到/usr/local/redis/etc目录下
1.cd ..
2.cp -r redis.conf /usr/local/redis/etc
- 修改/usr/local/redis/bin/etc目录下的redis.conf配置文件,让redis在后台运行
1.vim /usr/local/redis/bin/etc/redis.conf
2. 将
- 在/usr/local下创建redis目录
-
关闭防火墙
关闭防火墙命令的链接 -
启动和关闭redis
- 启动命令:
-
/usr/local/redis/bin/redis-server
或者
cd /usr/local/redis/bin
./redis-server /usr/local/redis/etc/redis.conf
-
成功界面
-
修改 redis.conf文件,使redis后台方式打开
daemonize yes --- 修改为yes 后台启动
requirepass 123456 ----注释取消掉设置账号密码
-
- 关闭redis命令
-
查看redis进程:ps -aux|grep redis
-
kill -9 pid — 强制杀死
-
- 启动命令:
主从复制
-
在/usr/local文件夹下创建redis-cluster文件
cd /usr/local mkdir redis-cluster
-
创建6379文件
cd /usr/local/redis-cluster mkdir 6379 vim 6379/redis.conf
port 6379 daemonize no #logfile "6379.log" dir /usr/local/redis-cluster/redis/data dbfilename dump-6379.rdb rdbcompression yes rdbchecksum yes save 10 2 appendonly yes appendfsync always appendfilename appendonly-6379.aof bind 127.0.0.1 databases 16
-
创建6380文件
cd /usr/local/redis-cluster mkdir 6380 vim 6380/redis.conf
port 6380 daemonize no #logfile "6380.log" slaveof 127.0.0.1 6379 dir /usr/local/redis-cluster/redis/data
-
启动服务
- 先启动6379redis服务:redis-server 6379/redis.conf
- 在启动6380redis从服务器:redis-server 6380/redis.conf
-
测试
- 登录6379服务器:redis-cli -h 127.0.0.1 -p 6379
- set name chenmin
- 登录6380服务器:redis-cli -h 127.0.0.1 -p 6380
- get name;成功获取到chenmin值
哨兵机制
- 将6380复制为6381,然后修改6381下的redis.conf的端口为6381
- 创建哨兵配置文件
-
在redis目录下创建conf目录文件,然后通过命令生成sentinel-26379.conf文件
cat sentinel.conf | grep -v "#" | grep -v "^$" > ./sentinel-26379.conf
-
sentinel-26379.conf文件内容如下:
port 26379 dir /usr/local/redis-cluster/redis/data sentinel monitor mymaster 127.0.0.1 6379 2 sentinel down-after-milliseconds mymaster 30000 sentinel parallel-syncs mymaster 1 sentinel failover-timeout mymaster 180000
-
创建sentinel-26380.conf
sed 's/26379/26380/g' sentinel-26379.conf > sentinel-26380.conf
-
同样的方法创建sentinel-26381.conf文件
sed 's/26379/26381/g' sentinel-26379.conf > sentinel-26381.conf
-
- 启动流程
- 先将一个主服务器和两个从服务器启动
- 然后启动哨兵
- 启动哨兵1:redis-sentinel redis/conf/sentinel-26379.conf
- 启动哨兵2:redis-sentinel redis/conf/sentinel-26380.conf
- 启动哨兵3:redis-sentinel redis/conf/sentinel-26381.conf
集群
-
redis集群下的配置文件redis.conf
port 6379 daemonize no #logfile "6379.log" dir "/usr/local/redis-cluster/redis/data" dbfilename "dump-6379.rdb" rdbcompression yes rdbchecksum yes save 10 2 appendonly yes appendfsync always appendfilename "appendonly-6379.aof" bind 127.0.0.1 databases 16 cluster-enabled yes cluster-config-file nodes-6379.conf cluster-node-timeout 10000
-
将redis.conf文件复制为redis-6379.conf
cp -r redis.conf redis-6379.conf
-
重复复制5个文件
sed 's/6379/6380/g' redis-6379.conf > redis-6380.conf sed 's/6379/6381/g' redis-6379.conf > redis-6381.conf sed 's/6379/6382/g' redis-6379.conf > redis-6382.conf sed 's/6379/6383/g' redis-6379.conf > redis-6383.conf sed 's/6379/6384/g' redis-6379.conf > redis-6384.conf
-
启动服务
redis-server ./redis-6379.conf redis-server ./redis-6380.conf redis-server ./redis-6381.conf redis-server ./redis-6382.conf redis-server ./redis-6383.conf redis-server ./redis-6384.conf
-
查看启动结果
ps -ef | grep redis
-
查找redis/src/ redis-trib.rb文件
ll redis/src | grep redis
-
执行命令
./redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384
-
安装ruby
yum install ruby wget http://rubygems.org/downloads/redis-3.3.0.gem gem install -l redis-3.3.0.gem
-
客户端连接redis集群服务器
redis-cli -c
redis-cli -c -p 6382
-
添加主节点
- 复制redis.conf
sed 's/6379/6385/g' redis-6379.conf > redis-6385.conf
- 启动redis-6385.conf
redis-server ./redis-6385.conf
- 添加节点到集群
./redis-trib.rb add-node 192.168.192.133:6385 192.168.192.133:6379
- 对solt重新分配
需要输入3个参数,slot数量就是给6385这个主节点的槽分配数;第二个参数是6385的ID,可以通过cluster nodes查看节点信息;第三个参数表示分配给6385的slot从哪来./redis-trib.rb reshard 192.168.192.133:6379
- 复制redis.conf
-
添加从节点
- 复制redis.conf
sed 's/6379/6386/g' redis-6379.conf > redis-6386.conf
- 启动redis-6386.conf
redis-server ./redis-6386.conf
- 添加节点到集群
master-id该主节点的id;192.168.192.133:6386表示从节点的地址;192.168.192.133:6379表示集群中任意节点的地址./redis-trib.rb add-node --slave --master-id c73a048cef39c274325725c9d7532eff17f40bf4 192.168.192.133:6386 192.168.192.133:6379
- 复制redis.conf
-
删除节点
./redis-trib.rb del-node 192.168.192.133:6386 id