一 安装
1、安装gcc依赖
由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v),如果没有安装,执行以下命令进行安装
yum install -y gcc
2、下载并解压安装包
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
tar -zxvf redis-5.0.3.tar.gz
3、cd切换到redis解压目录下,执行编译
[root@localhost local]# cd root/redis-5.0.3
[root@localhost redis-5.0.3]# make
4、安装并指定安装目录
make install PREFIX=/usr/local/redis
5、启动服务
①前台启动
cd /usr/local/redis/bin/
./redis-server
②后台启动
从 redis 的源码目录(解压的目录,在root下)中复制 redis.conf 到 redis 的安装目录,用linux cp 命令
cp /root/redis-5.0.3/redis.conf /usr/local/redis/bin/
修改 redis.conf 文件,把 daemonize no 改为 daemonize yes
[root@localhost bin]# vi redis.conf
[root@localhost bin]# ./redis-server redis.conf
6、设置开机启动
① 添加开机启动服务
vi /etc/systemd/system/redis.service
②复制粘贴以下内容:
[Unit]
Description=redis-server
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
PrivateTmp=true
[Install]
WantedBy=multi-user.target
注意:ExecStart配置成自己的路径
③设置开机启动
systemctl daemon-reload
systemctl start redis.service
systemctl enable redis.service
④创建 redis 命令软链接(In命令为某一个文件在另外一个位置建立一个同步的链接。ln -s 源文件 目标文件)
ln -s /usr/local/redis/bin/redis-cli /usr/bin/redis
测试 redis
服务操作命令
systemctl start redis.service #启动redis服务
systemctl stop redis.service #停止redis服务
systemctl restart redis.service #重新启动服务
systemctl status redis.service #查看服务当前状态
systemctl enable redis.service #设置开机自启动
systemctl disable redis.service #停止开机自启动
二 搭建redis集群
结合官网http://www.redis.cn/topics/cluster-tutorial.html的实施步骤
1 创建多个运行实例
1 切换到/usr/local/目录,新建cluster-test目录
cd /usr/local/
mkdir cluster
2 在cluster目录新建6个目录7000 7001 7002 7003 7004 7005
mkdir 7000 7001 7002 7003 7004 7005
3、把redis.conf配置文件复制到上面创建的7000目录中
cp /root/redis-5.0.3/redis.conf /usr/local/cluster-test/7000
4、修改7000中的配置文件
port 7000
pidfile /var/run/redis_7000.pid
dbfilename dump_7000.rdb
appendfilename "appendonly_7000.aof"
cluster-config-file nodes_7000.conf
dir /usr/local/cluster/7000/
cluster-node-timeout 15000
appendonly yes
cluster-enabled yes
!! 配置文件不要自己写注释,(尤其是同一行)会报错
文件没找到的配置,被注释掉了
5 启动7000端口
redis-server /usr/local/cluster-test/7000/redis.conf
6 如果7000端口启动成功。。复制redis.conf到其他文件。修改7000为对应的端口号
cp 7000/redis.conf 7001/
配置文件改5处7000改为自己的端口 sed -i ‘/7000/{s/7000/7005/}’ 7005/redis.conf
7.查看是否都启动成功
ps -ef|grep redis
2 部署Ruby 环境
通过Redis 集群命令行工具 redis-trib , 编写节点配置文件的工作可以非常容易地完成: redis-trib 位于 Redis 源码的 src 文件夹中, 它是一个 Ruby 程序, 这个程序通过向实例发送特殊命令来完成创建新集群, 检查集群, 或者对集群进行重新分片(reshared)等工作。用RVM 轻松安装部署Ruby环境
1.安装rvm(2步 )
①安装rvm(常常出现公钥丢失)首先要执行: 更新秘钥
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
②再执行curl命令:进行文件传输和下载
curl -sSL https://get.rvm.io | bash -s stable
curl 下载报错:
查看网址[https://www.ipaddress.com/]查 raw.githubusercontent.com对应的IP 地址
vim /etc/hosts 增加 199.232.96.133 raw.githubusercontent.com
2 激活rvm 的环境变量:source命令
source /etc/profile.d/rvm.sh
3 选择ruby 版本+下载
rvm list known # 查看版本
rvm install 2.4.4 # 安装2.4.4版本
4 确认版本号+ 设为默认版本(rvm命令)
ruby -v
rvm use 2.4.4
5 用 gem 命令安装 redis
gem install redis
ruby 是一种语言,是某些软件包代码的执行环境。gem 是管理这些基于ruby程序的程描述
3 集群搭建+基本操作(基于运行实例 + Ruby 环境)
1.创建集群
redis-trib 位于 Redis 源码的 src 文件夹中,切换到redis-trib文件夹下 PS:**./**一定要有,不然文件找不到
./redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 # 官网指令
./redis-cli --cluster create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005 # 警告的 替换指令
选项–replicas 1 表示我们希望为集群中的每个主节点创建一个从节点。
报错:[ERR] Node 192.168.162.132:7001 is not configured as a cluster node
措施:redis.conf 中 cluster-enabled yes 的注释打开,再重启redis
./redis-cli --cluster add-node 127.0.0.1:7005 127.0.0.1:7002 #第一个参数新节点的地址,第二个参数是任意已经存在的节点的IP和端口.
接下来, 只要使用 redis-trib 程序, 将集群中的某些哈希桶移动到新节点里面, 新节点就会成为真正的主节点了。
5查看集群节点
cluster nodes
报错:[ERR] Not all 16384 slots are covered by nodes.
原因:主node移除了,但是并没有移除node上面的slot,从而导致了slot总数没有达到16384,其实也就是slots分布不正确。所以在删除节点的时候一定要注意删除的是否是Master主节点
6 连接到集群
redis-cli -h 127.0.0.1 -c -p 7001