先安装运行环境
安装gcc环境
yum install gcc-c++
安装Tcl TCL(Tool Command Language)工具脚本语言,是Linux内的一种语言包。,这里需要先安装tcl。
wget http://downloads.sourceforge.net/tcl/tcl8.6.1-src.tar.gz tar -zxzf tcl8.6.1-src.tar.gz sudo mv tcl8.6.1 /usr/local/ cd /usr/local/ cd tcl8.6.1/unix/ ./configure make make install
安装redis
1下载
wget -q http://download.redis.io/releases/redis-4.0.1.tar.gz
2解压
tar -zxvf redis-4.0.1.tar.gz
3指定安装目录
sudo mv redis-4.0.1 /usr/local/
4切换目录
cd /usr/local/redis-4.0.1/
5 make test
make test
6 make install
make install
自定义目录安装
命令:进入redis的解压完毕的根目录下,
执行命令: make install PREFIX=/usr/local/redis
可以通过
ps -ef | grep -i redis
ps -aux|grep redis
来查看是否启动
5、关闭redis
./bin/redis-cli shutdown
redis设置开机启动
创建存储redis文件目录
mkdir -p /usr/local/redis
复制redis-server redis-cli到新建立的文件夹
cp ./redis-server /usr/local/redis/
cp ./redis-cli /usr/local/redis/
复制redis的配置文件
cd ..
cp redis.conf /usr/local/redis/
编辑配置文件
cd /usr/local/redis/
vim redis.conf
添加开机启动服务
vim /etc/systemd/system/redis-server.service
[Unit]
Description=The redis-server Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/var/run/redis_6379.pid
ExecStart=/usr/local/redis/redis-server /usr/local/redis/redis.conf
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
设置开机启动
systemctl daemon-reload
systemctl start redis-server.service
systemctl enable redis-server.service
检查是否安装成功
查看服务是否启动
lsof -i:6379
创建redis命令软连接
ln -s /usr/local/redis/redis-cli /usr/bin/redis
一、安装snmp
yum install -y net-snmp net-snmp-utils
安装redis集群
创建集群
./redis-trib.rb create --replicas 1 192.168.3.155:7001 192.168.3.155:7002 192.168.3.155:7003 192.168.3.155:7004 192.168.3.155:7005 192.168.3.155:7006 ./redis-trib.rb create --replicas 1 192.168.3.155:7001 -a java123 192.168.3.155:7002 -a java123 192.168.3.155:7003 -a java123 192.168.3.155:7004 -a java123 192.168.3.155:7005 -a java123 192.168.3.155:7006 -a java123 关闭集群 pkill -9 redis Redis槽分配 0-5000 5001-10000 10001-16383 或 0-2730 2731-5461 5462-8191 8192-10921 10922-13651 13652-16383 修改redis.conf文件 port 7001 daemonize yes cluster-enabled yes cluster-config-file nodes.conf cluster-node-timeout 5000 appendonly yes
常见错误及解决方法
错误详细如下:
/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in
require': cannot load such file -- Redis (LoadError) from
require’ from /usr/local/bin/redis-trib.rb:25:in `’
/usr/share/rubygems/rubygems/core_ext/kernel_require.rb:55:in
问题来源这个命令:./redis-trib.rb create –replicas 1 192.168.3.155:7001
192.168.3.155:7002 192.168.3.155:7003 192.168.3.155:7004 192.168.3.155:7005 192.168.3.155:7006解决方法如下 : [root@10-13-165-107 redis]# gem install redis
ERR]Node XXXXXX is not empty. Either the node already knows other
nodes (check withCLUSTER NODES) or contains some key in database 0
解决办法是将每一个redis下删除生成的配置文件nodes.conf,如果不行则说明现在创建的结点包括了旧集群的结点信息,需要删除redis的持久化文件后再重启redis,比如:appendonly.aof、dump.rdb
还需要进入每一个redis清除数据: [root@localhost redis-cluster]# redis01/redis-cli
-h 192.168.181.132 -p 7001 -c
192.168.181.132:7006> FLUSHALL 总共6个redis清除后重复(1)若还是有问题: [root@localhost redis-cluster]# ./redis-trib.rb check
192.168.181.132:7001 正常状态下应该是:如果不是如上,可以修复这个端口 [root@localhost redis-cluster]# ./redis-trib.rb fix
192.168.181.132:7001 请检查这6个端口并修复!!![ERR] Node 172.168.63.202:7001 is not empty. Either the nodealready
knows other nodes (check with CLUSTER NODES) or contains some的问题
解决办法:
1)将每个节点下aof、rdb、nodes.conf本地备份文件删除; 2)172.168.63.201:7001> flushdb
#清空当前数据库(可省略) 3)之后再执行脚本,成功执行;
这里解释一下dump.rdb文件:
dump.rdb是由Redis服务器自动生成的 默认情况下 每隔一段时间redis服务器程序会自动对数据库做一次遍历,把内存快照写在一个叫做“dump.rdb”的文件里,这个持久化机制叫做SNAPSHOT。有了SNAPSHOT后,如果服务器宕机,重新启动redis服务器程序时redis会自动加载dump.rdb,将数据库状态恢复到上一次做SNAPSHOT时的状态。