环境
centos 7 最简安装
官网指导地址:https://redis.io/download
1、yum 安装wget
# yum install -y wget
2、安装gcc
yum install -y gcc
3、下载并安装redis 5
# wget http://download.redis.io/releases/redis-5.0.3.tar.gz
# tar xzf redis-5.0.3.tar.gz
# cd redis-5.0.3
# make MALLOC=libc
关于分配器allocator, 如果有MALLOC 这个 环境变量, 会有用这个环境变量的 去建立Redis。
而且libc 并不是默认的 分配器, 默认的是 jemalloc, 因为 jemalloc 被证明 有更少的 fragmentation problems 比libc。
但是如果你又没有jemalloc 而只有 libc 当然 make 出错。 所以加这么一个参数
(
4、启动服务
src/redis-server ./redis.conf
5、启动客户端
src/redis-cli -h host -p port -a password
)
###以后台进程方式启动redis
修改redis.conf文件 daemonize no =====>yes
指定redis.conf文件启动 ./redis-server ...../redis.conf
#####关闭redis进程
redis-cli -p 端口号 shutdown
使用systemctl管理
vim /usr/lib/systemd/system/redis.service
[Unit]
Description=Redis Server
After=network.target
[Service]
ExecStart=/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-5.0.3/redis.conf --daemonize no
ExecStop=/usr/local/redis/redis-5.0.3/src/redis-cli -p 6379 shutdown
Restart=always
[Install]
WantedBy=multi-user.target
Description=Redis Server
After=network.target
[Service]
ExecStart=/usr/local/redis/redis-5.0.3/src/redis-server /usr/local/redis/redis-5.0.3/redis.conf --daemonize no
ExecStop=/usr/local/redis/redis-5.0.3/src/redis-cli -p 6379 shutdown
Restart=always
[Install]
WantedBy=multi-user.target
外部连接redis注意事项
redis黙认拒绝外部访问,如需开启远程访问,需要如下操作:
修改redis.conf
1、bind 127.0.0.1注释
2、protected-mode yes改为no 或者 requirepass 设置密码
3、启动redis-server时后面要跟配置文件redis-conf
redis5.0.3配置集群
cd /usr/local/redis/redis-5.0.3
mkdir 6380 6381 6382 6383 6384 6385
#cp redis.conf 6380 mv redis.conf redis-6380.conf
#cp redis.conf 6381 mv redis.conf redis-6381.conf
#cp redis.conf 6382 mv redis.conf redis-6382.conf
#cp redis.conf 6383 mv redis.conf redis-6383.conf
#cp redis.conf 6384 mv redis.conf redis-6384.conf
#cp redis.conf 6385 mv redis.conf redis-6385.conf
#cp redis.conf 6381 mv redis.conf redis-6381.conf
#cp redis.conf 6382 mv redis.conf redis-6382.conf
#cp redis.conf 6383 mv redis.conf redis-6383.conf
#cp redis.conf 6384 mv redis.conf redis-6384.conf
#cp redis.conf 6385 mv redis.conf redis-6385.conf
修改所有的配置文件 (加端口号的以此类推)
具体修改:
(1)port 6380 #绑定端口
(2)bind 192.168.25.64 #定IP也(可以注释掉,这样任何桌面客户端都可以连接了)
(3)dir /usr/local/redis-cluster/3680 #指定文件存放路径 ( .rdb .aof nodes-xxxx.conf 这样的文件都会在此路径下)
(4)cluster-enabled yes #启动集群模式
(5)cluster-config-file #集群节点配置文件
(6)daemonize yes #后台启动
(7)cluster-node-timeout 5000 #指定集群节点超时时间
(8)appendonly yes #指定持久化方式
(9)protected-mode no #非保护模式
具体修改:
(1)port 6380 #绑定端口
(2)bind 192.168.25.64 #定IP也(可以注释掉,这样任何桌面客户端都可以连接了)
(3)dir /usr/local/redis-cluster/3680 #指定文件存放路径 ( .rdb .aof nodes-xxxx.conf 这样的文件都会在此路径下)
(4)cluster-enabled yes #启动集群模式
(5)cluster-config-file #集群节点配置文件
(6)daemonize yes #后台启动
(7)cluster-node-timeout 5000 #指定集群节点超时时间
(8)appendonly yes #指定持久化方式
(9)protected-mode no #非保护模式
启动节点
# ./src/redis-server 6380/redis-6380.conf
# ./src/redis-server 6381/redis-6381.conf
# ./src/redis-server 6382/redis-6382.conf
# ./src/redis-server 6383/redis-6383.conf
# ./src/redis-server 6384/redis-6384.conf
# ./src/redis-server 6385/redis-6385.conf
# ./src/redis-server 6381/redis-6381.conf
# ./src/redis-server 6382/redis-6382.conf
# ./src/redis-server 6383/redis-6383.conf
# ./src/redis-server 6384/redis-6384.conf
# ./src/redis-server 6385/redis-6385.conf
启动集群
#./src/redis-cli --cluster create 192.168.25.64:6380 192.168.25.64:6381 192.168.25.64:6382 192.168.25.64:6383 192.168.25.64:6384 192.168.25.64:6385 --cluster-replicas 1
客户端连接集群
./redis-cli -c(连接集群,不加就是连接单机) -h 192.168.25.64 -p 6380
查看集群信息:cluster info
查看节点信息:cluster nodes
docker部署redis集群
创建内部网络
docker network create redis_network
指定配置文件:/myredis/6380/conf/redis-6380.conf,指定数据存储目录:/myredis/6380/data/ (注意:配置文件中必须配置daemonize no,不然容器启动后会马上停止)
docker run -p 6380:6380 --name redis6380 --network redis_network --network-alias redis6380 -v /myredis/6380/conf/redis-6380.conf:/usr/local/etc/redis/redis.conf -v /myredis/6380/data/:/data/ -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
docker run -p 6381:6380 --name redis6381 --network redis_network --network-alias redis6381 -v /myredis/6380/conf/redis-6380.conf:/usr/local/etc/redis/redis.conf -v /myredis/6381/data/:/data/ -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
docker run -p 6382:6380 --name redis6382 --network redis_network --network-alias redis6382 -v /myredis/6380/conf/redis-6380.conf:/usr/local/etc/redis/redis.conf -v /myredis/6382/data/:/data/ -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
docker run -p 6383:6380 --name redis6383 --network redis_network --network-alias redis6383 -v /myredis/6380/conf/redis-6380.conf:/usr/local/etc/redis/redis.conf -v /myredis/6383/data/:/data/ -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
docker run -p 6384:6380 --name redis6384 --network redis_network --network-alias redis6384 -v /myredis/6380/conf/redis-6380.conf:/usr/local/etc/redis/redis.conf -v /myredis/6384/data/:/data/ -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
docker run -p 6385:6380 --name redis6385 --network redis_network --network-alias redis6385 -v /myredis/6380/conf/redis-6380.conf:/usr/local/etc/redis/redis.conf -v /myredis/6385/data/:/data/ -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
docker run -p 6381:6380 --name redis6381 --network redis_network --network-alias redis6381 -v /myredis/6380/conf/redis-6380.conf:/usr/local/etc/redis/redis.conf -v /myredis/6381/data/:/data/ -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
docker run -p 6382:6380 --name redis6382 --network redis_network --network-alias redis6382 -v /myredis/6380/conf/redis-6380.conf:/usr/local/etc/redis/redis.conf -v /myredis/6382/data/:/data/ -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
docker run -p 6383:6380 --name redis6383 --network redis_network --network-alias redis6383 -v /myredis/6380/conf/redis-6380.conf:/usr/local/etc/redis/redis.conf -v /myredis/6383/data/:/data/ -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
docker run -p 6384:6380 --name redis6384 --network redis_network --network-alias redis6384 -v /myredis/6380/conf/redis-6380.conf:/usr/local/etc/redis/redis.conf -v /myredis/6384/data/:/data/ -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
docker run -p 6385:6380 --name redis6385 --network redis_network --network-alias redis6385 -v /myredis/6380/conf/redis-6380.conf:/usr/local/etc/redis/redis.conf -v /myredis/6385/data/:/data/ -d redis redis-server /usr/local/etc/redis/redis.conf --appendonly yes
./src/redis-cli --cluster create 172.18.0.2:6380 172.18.0.3:6380 172.18.0.4:6380 172.18.0.5:6380 172.18.0.6:6380 172.18.0.7:6380 --cluster-replicas 1