这是以前在csdn上的博客, 迁移到掘金html
今天记录下redis的安装过程node
根据Redis官方介绍, Redis是一种开源(BSD许可)、内存中的数据结构存储,用做数据库、缓存和消息代理,它支持数据结构,如字符串、散列、列表、集合、带范围查询的排序集、位图、超loglogs、带半径查询的地理空间索引和流。Redis具备内置的复制、Lua脚本、LRU退出、事务和不一样级别的磁盘持久性,并经过Redis Sentinel和使用Redis集群的自动分区提供高可用性。redis
Redis一共支持5种数据类型的存储数据库
string类型是最基础的存储类型,一个key对应一个value。 最大能够存储512M缓存
hash 是一个键值(key=>value)对集合。bash
list是简单的字符串列表数据结构
set是string类型的无序集合。 且集合是经过哈希表实现的,因此添加,删除,查找的复杂度都是O(1)。app
zset 和 set 同样也是string类型元素的集合,且不容许重复的成员。ui
此次经过wget直接下载而后安装spa
wget http://download.redis.io/releases/redis-5.0.3.tar.gz
复制代码
tar -zxvf redis-5.0.3.tar.gz
复制代码
mkdir -p /opt/redis
复制代码
make PREFIX=/opt/redis install
复制代码
若是make出错, 执行
yum install gcc
cp redis.conf /opt/redis/
复制代码
# 进入/opt/redis下
cd /opt/redis/
# 启动
./bin/redis-server ./redis.conf
# 查看是否启动
ps -ef | grep redis
复制代码
上面的启动是在前台启动, 在后台启动有一下两种方式
方式一 & 表明 运行到后台
./bin/redis-server ./redis.conf &
复制代码
方式二 修改redis.conf文件 找到daemonize 把no改为yes
daemonize yes
# 启动
./bin/redis-server ./redis.conf
复制代码
关于Redis集群的安装, 这里有Redis集群规范,你们能够参考下 针对Ruby方式的集群, 能够参考文档Redis集群指南
Redis 5.0以后放弃使用Ruby方式的集群, 改用C语言方式的redis-cli 集群, 简化了集群方式
CentOs 7 Redis 5.x
要让 Redis3.0 集群正常工做至少须要 3 个 Master 节点,要想实现高可用,每一个 Master 节点要配备 至少 1 个 Slave 节点。根据以上特色和要求,进行以下的集群实施规划:
192.168.87.129
mkdir -p /opt/redis/redis-7111
mkdir -p /opt/redis/redis-7112
复制代码
192.168.87.130
mkdir -p /opt/redis/redis-7113
mkdir -p /opt/redis/redis-7114
复制代码
192.168.87.131
mkdir -p /opt/redis/redis-7115
mkdir -p /opt/redis/redis-7116
复制代码
192.168.87.129
make PREFIX=/opt/redis/redis-7111 install
make PREFIX=/opt/redis/redis-7112 install
复制代码
192.168.87.130
make PREFIX=/opt/redis/redis-7113 install
make PREFIX=/opt/redis/redis-7114 install
复制代码
192.168.87.131
make PREFIX=/opt/redis/redis-7115 install
make PREFIX=/opt/redis/redis-7116 install
复制代码
192.168.87.129
mkdir -p /opt/redis/redis-7111/cluster/7111
mkdir -p /opt/redis/redis-7112/cluster/7112
cp /usr/local/opt/redis-5.0.3/redis.conf /opt/redis/redis-7111/cluster/7111
cp /usr/local/opt/redis-5.0.3/redis.conf /opt/redis/redis-7112/cluster/7112
复制代码
192.168.87.130
mkdir -p /opt/redis/redis-7113/cluster/7113
mkdir -p /opt/redis/redis-7114/cluster/7114
cp /usr/local/opt/redis-5.0.3/redis.conf /opt/redis/redis-7113/cluster/7113
cp /usr/local/opt/redis-5.0.3/redis.conf /opt/redis/redis-7114/cluster/7114
复制代码
192.168.87.131
mkdir -p /opt/redis/redis-7115/cluster/7115
mkdir -p /opt/redis/redis-7116/cluster/7116
cp /usr/local/opt/redis-5.0.3/redis.conf /opt/redis/redis-7115/cluster/7115
cp /usr/local/opt/redis-5.0.3/redis.conf /opt/redis/redis-7116/cluster/7116
复制代码
port 7111 #端口 一一对应修改
cluster-enabled yes #启用集群模式
cluster-config-file /opt/redis/redis-7111/cluster/7111/nodes.conf # 一一对应修改
cluster-node-timeout 5000 #超时时间
appendonly yes
daemonize yes #后台运行
protected-mode no #非保护模式
pidfile /var/run/redis_7111.pid # 一一对应修改
dir /opt/redis/redis-7111/cluster/7111 # 一一对应修改(非必须, 建议配置)
databases 1
复制代码
192.168.87.129
./opt/redis/redis-7111/bin/redis-server /opt/redis/redis-7111/cluster/7111/redis-7111.conf
./opt/redis/redis-7112/bin/redis-server /opt/redis/redis-7112/cluster/7112/redis-7112.conf
复制代码
192.168.87.130
./opt/redis/redis-7113/bin/redis-server /opt/redis/redis-7113/cluster/7113/redis-7113.conf
./opt/redis/redis-7114/bin/redis-server /opt/redis/redis-7114/cluster/7114/redis-7114.conf
复制代码
192.168.87.131
./opt/redis/redis-7115/bin/redis-server /opt/redis/redis-7115/cluster/7115/redis-7115.conf
./opt/redis/redis-7116/bin/redis-server /opt/redis/redis-7116/cluster/7116/redis-7116.conf
复制代码
启动以后经过ps -ef | grep redis
查看启动结果
启动成功后接下来准备建立集群 随便在那一台机器上操做均可以,
/usr/local/opt/redis-5.0.3/src/redis-cli --cluster create 192.168.87.129:7111 192.168.87.130:7113 192.168.87.131:7115 192.168.87.129:7112 192.168.87.130:7114 192.168.87.131:7116 --cluster-replicas 1
复制代码
须要设置那些为master就将地址写在前面
稍等片刻会出现确认信息, 仔细查看节点配置是否正确。 正确输入yes便可
Creating cluster
Connecting to node 192.168.87.129:7111: OK
Connecting to node 192.168.87.130:7113: OK
Connecting to node 192.168.87.131:7115: OK
Connecting to node 192.168.87.129:7112: OK
Connecting to node 192.168.87.130:7114: OK
Connecting to node 192.168.87.131:7116: OK
>>> Performing hash slots allocation on 6 nodes...
Using 3 masters:
192.168.87.129:7111
192.168.87.130:7113
192.168.87.131:7115
Adding replica 192.168.87.129:7112 to 192.168.87.129:7111
Adding replica 192.168.87.130:7114 to 192.168.87.130:7113
Adding replica 192.168.87.131:7116 to 192.168.87.131:7115
M: 007a3fe8d7451d3d0a78fffd2653c8641809499c 192.168.87.129:7111
replicates 94e140b9ca0735040ae3428983835f1d93327aeb
M: ea69b6b6e2e7723eed50b1dabea9d244ccf3f098 192.168.87.130:7113
replicates c642b3071c4b2b073707ed3c3a2c16d53a549eff
M: 5f09dc0671732cf06a09f28631c90e0c68408520 192.168.87.131:7115
replicates 896a3c99da4fcf680de1f42406fccb551d8c40c3
S: 94e140b9ca0735040ae3428983835f1d93327aeb 192.168.87.129:7112
slots:10923-16383 (5461 slots) master
S: c642b3071c4b2b073707ed3c3a2c16d53a549eff 192.168.87.130:7114
slots:5461-10922 (5462 slots) master
S: 896a3c99da4fcf680de1f42406fccb551d8c40c3 192.168.87.131:7116
slots:0-5460 (5461 slots) master
Can I set the above configuration? (type 'yes' to accept): yes
(输入 yes 并按下回车确认以后,集群就会将配置应用到各个节点,并链接起(join)各个节点,也就是
让各个节点开始互相通信)
>>> Nodes configuration updated
>>> Assign a different config epoch to each node
>>> Sending CLUSTER MEET messages to join the cluster
Waiting for the cluster to join....
>>> Performing Cluster Check (using node 192.168.87.129)
M: 007a3fe8d7451d3d0a78fffd2653c8641809499c 192.168.87.129:7111
slots: (0 slots) master
replicates 94e140b9ca0735040ae3428983835f1d93327aeb
M: ea69b6b6e2e7723eed50b1dabea9d244ccf3f098 192.168.87.130:7113
slots: (0 slots) master
replicates c642b3071c4b2b073707ed3c3a2c16d53a549eff
M: 5f09dc0671732cf06a09f28631c90e0c68408520 192.168.87.131:7115
slots: (0 slots) master
replicates 896a3c99da4fcf680de1f42406fccb551d8c40c3
M: 94e140b9ca0735040ae3428983835f1d93327aeb 192.168.87.129:7112
slots:10923-16383 (5461 slots) master
M: c642b3071c4b2b073707ed3c3a2c16d53a549eff 192.168.87.130:7114
slots:5461-10922 (5462 slots) master
M: 896a3c99da4fcf680de1f42406fccb551d8c40c3 192.168.87.131:7116
slots:0-5460 (5461 slots) master
[OK] All nodes agree about slots configuration.
>>> Check for open slots...
>>> Check slots coverage...
[OK] All 16384 slots covered.
复制代码
到此Redis5.x集群正式结束
./redis-cli -c -p 7111
复制代码