配置文件基本设置
yum安装的话就在 /etc/redis.conf
# 设置端口port 6379# 守护进程daemonize yes|no# 端口绑定 只能以这个ip访问 0.0.0.0就是都可以访问bind 127.0.0.1# 日志级别 开发环境设为verbose即可 生产环境设置为notice简化输出量降低IO频度loglevel debug|verbose|notice|warning# 日志记录文件名以端口号命名比较好logfile 端口.log# 同一时间最大客户端连接数 达到连接上限redis会关闭新连接 默认无限大maxclients 10# 客户端闲置等待最大时长,达到最大值关闭链接 设置为0表示关闭该功能(没什么事情可以不用该功能)timeout 300# 多服务器快捷配置 便于维护include /path/xxx.conf# 设置密码requirepass foobared
yum安装redis
直接yum 安装的redis 不是最新版本
yum install redis
如果要安装最新的redis,需要安装Remi的软件源,官网地址:http://rpms.famillecollet.com/
yum install -y http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
然后可以使用下面的命令安装最新版本的redis:
yum --enablerepo=remi install redis
设置redis开机启动
systemctl enable redis
然后输入如下命令就可以启动redis了
redis-server /etc/redis.conf
/usr/bin/redis-cli
压缩包安装(推荐)
官网 https://redis.io/download 提供下载
以redis6.0版本为例
这里使用wget方式进行下载
wget https://download.redis.io/releases/redis-6.0.9.tar.gz
tar -zxvf redis-6.0.9.tar.gz
cd redis-6.0.9
编译环境
yum -y install centos-release-scl
yum -y install devtoolset-9-gcc devtoolset-9-gcc-c++ devtoolset-9-binutils
## 临时启用gcc9.1版本
scl enable devtoolset-9 bash
## 永久使用
echo "source /opt/rh/devtoolset-9/enable" >>/etc/profile
执行make命令
为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中
mkdir bin
mkdir etc
# 将配置文件移入etc目录
mv redis.conf etc/
# 进入src目录 将一些可执行文件移入bin目录
cd src/
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-rdb redis-cli redis-server ../bin/
配置一下环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/redis/redis-6.0.9/bin
source /etc/profile
配置好了之后直接输入redis-server命令就启动了redis
配置一下redis.conf
# 设置端口
port 6379
# 守护进程开启
daemonize yes
# 端口绑定 只能以这个ip访问 0.0.0.0就是都可以访问
bind 0.0.0.0
# 设置密码
requirepass foobared
配置完,启动完,开放端口
iptables -I INPUT -p tcp --dport 6379 -j ACCEPT
redis配置多实例
在学习阶段使用伪集群,这时就需要在一台服务器上配置多个实例
前提条件:已经安装好了一个实例并配置完成可以对外访问了
copy一份Redis配置文件并修改配置信息
cp /etc/redis.conf /etc/redis_6380.conf
在配置文件中修改端口号
port 6380
修改6380的pid文件位置
pidfile /var/run/redis_6380.pid
修改6380的日志文件位置
logfile /var/log/redis/redis_6380.log
修改6380的数据库文件位置
dbfilename dump_6380.rdb
最后启动6380端口的redis
redis-server /etc/redis_6380.conf
在linux命令行启动redis-cli时需指定端口,如6380端口
redis-cli -p 6380
配置Redis集群
集群至少需要六个Redis服务器,所以在此根据上面提到的方法将Redis.conf配置文件复制六份
除了更改上述的配置之外还需更改以下的配置
1.将# cluster-enabled yes的注解打开
# cluster-enabled yes
2.将集群的配置文件名改成与端口号对应,以端口6380为例
六个Redis六个节点,每个节点的cluster-config-file nodes-6380.conf配置文件名都需要不一样
cluster-config-file nodes-6380.conf
3.将此注释的井号删掉
cluster-node-timeout 15000
如果需要设置密码就需要修改所有Redis集群中的redis.conf文件加入 ,passwd123指具体的密码,每个节点的密码最好都设置成一样的
masterauth passwd123
requirepass passwd123
4.然后启动六个Redis服务
redis-server /etc/redis_6380.conf
Redis5.0版本开始配置集群不需要使用ruby,所以六个节点的配置文件改好后直接在Linux输入以下命令即可(192.168.246.128是虚拟机安装的Linux服务器ip地址)
redis-cli --cluster create 192.168.246.128:6380 192.168.246.128:6381 192.168.246.128:6382 192.168.246.128:6383 192.168.246.128:6384 192.168.246.128:6385 --cluster-replicas 1
5.最终出现如图所示,表示集群配置成功
6.在服务器端测试时需按照集群的方式启动,指定ip和端口号
redis-cli -c -h 192.168.246.128 -p 6380
给Redis集群扩容
最初配的集群只拥有六个redis,可能会不够用,会需要进行扩容操作
配置多实例已经在上面写过,在此就不重复。直奔主题
1.添加节点
第一个ip:port 为需要添加的节点ip和端口,第二个ip:port为当前集群中的节点和端口
redis-cli --cluster add-node 10.70.10.184:7002 10.70.10.184:7000 -a 123456
2.分配哈希槽
注意:新添加的节点是没有哈希槽的,所以并不能正常存储数据,需要给新添加的节点分配哈希槽:哈希槽的配置不均匀,可能导致数据不同步;
redis-cli --cluster reshard 10.70.10.184:7002 -a 密码
输入要分配多少个哈希槽(数量)?比如我要分配1000个哈希槽
输入指定要分配哈希槽的节点ID(选择任意一个节点作为目标节点进行分配哈希槽);
选择需要分配的哈希槽来源,输入all
输入all 需要分配给目标节点的哈希槽来着当前集群的其他主节点(每个节点拿出的数量为集群自动决定)
是否继续执行建议的reshard计划
输入yes后,就会完成分配哈希槽:
