1、key批量操作支持有限。如mset、mget,目前只支持具有相同slot值的key执行批量操作。对于映射为不同slot值的key由于执行mget、mget等操作可能存在于多个节点上因此不被支持。
2、key事务操作支持有限。同理只支持多key在同一节点上的事务操作,当多个key分布在不同的节点上时无法使用事务功能。
3、key作为数据分区的最小粒度,因此不能将一个大的键值对象如hash、list等映射到不同的节点。
4、支持多数据库空间。单机下的Redis可以支持16个数据库,集群模式下只能使用一个数据库空间,即db0。
5、复制结构只支持一层,从节点只能复制主节点,不支持嵌套树状复制结构。
安装 C编译器 以及一些常用依赖
yum install -y gcc gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel
参考地址:
http://www.redis.net.cn/download/
http://redis.cn/commands.html#string
#$ wget http://download.redis.io/releases/redis-3.0.6.tar.gz
#$ tar xzf redis-3.0.6.tar.gz
#$ cd redis-3.0.6
#[root@zegoto redis-3.0.6]# make
#cd src
二进制文件是编译完成后在src目录下. 运行如下:
#$ src/redis-server
#$ src/redis-cli
#redis> set foo bar
#redis> get foo
安装到指定目录
如 /usr/local/rediscd
cd /usr/local/redis-3.0.0
make PREFIX=/usr/local/redis install
cp /usr/local/redis-3.0.0/redis.conf /usr/local/redis/bin
修改配置文件【 redis-{port}.conf 】:
bing 192.168.56.104
port 6379
daemonize yes #后台运行
logfile log/6379.log
cluster-enabled yes
dir data
cluster-node-timeout 15000
cluster-config-file nodes-6379.conf
###依次启动
redis-server conf/redis-6379.conf &
redis-server conf/redis-6380.conf &
redis-server conf/redis-6381.conf &
redis-server conf/redis-6382.conf &
redis-server conf/redis-6383.conf &
redis-server conf/redis-6384.conf &
redis-trib.rb是采用Ruby实现的Redis集群管理工具。内部通过Cluster相关命令帮我们简化集群创建、检查、槽迁移和均衡等常见运维操作,使用之前需要安装Ruby依赖环境。
1、安装 ruby 环境
linux上安装
安装ruby环境
wget https://cache.ruby-lang.org/pub/ruby/2.3/ruby-2.3.1.tar.gz
tar xvf ruby-2.3.1.tar.gz
./configure -prefix=/usr/local/bin/ruby-2.3.1
make
make install
cd /usr/local/ruby-2.3.1
sudo cp bin/ruby /usr/local/bin
sudo cp bin/gem /usr/local/bin
安装 rubygem redis依赖:
wget http://rubygems.org/downloads/redis-3.3.0.gem
gem install -l redis-3.3.0.gem
安装 redis-trib.rb:
sudo cp /{redis_home}/src/redis-trib.rb /usr/local/bin
windows下安装 install Ruby on windows
1) Ruby官网下载安装文件
2) 在http://curl.haxx.se/ca/cacert.pem下载证书,放在ruby安装目录下
3) 设置环境变量SSL_CERT_FILE,指向证书文件
4) 运行Start Command Prompt with Ruby
5) 输入gem install redis
6) 从redis3.2源码中的src文件夹下redis-trib.rb 复制到搭建的集群文件夹下
7) 运行redis-trib.rb
2、准备6个节点,同手动搭建方式一致
3、创建集群
redis-trib.rb create --replicas 1 127.0.0.1:6379 127.0.0.1:6380 127.0.0.1:6381 127.0.0.1:6382 127.0.0.1:6383 127.0.0.1:6384
eg :
redis-trib.rb create --replicas 1 192.168.56.104:6379 192.168.56.104:6380 192.168.56.104:6381 192.168.56.101:6382 192.168.56.101:6383 192.168.56.101:6384
4、集群完整性检查
集群完整性指所有的槽都分配到存活的主节点上,只要16384个槽中有一个没有分配给节点则表示集群不完整。可以使用redis-trib.rb check命令检测之前创建的集群是否成功。
redis-trib.rb check
redis-trib.rb check 192.168.56.104:6379
5、 重新分配
redis-trib相关命令:
加入节点:
redis-trib.rb add-node new_host:new_port existing_host:existing_port --slave–master-id
重新分配槽:
redis-trib.rb reshard host:port --from --to --slots --yes --timeout --pipeline
host:port:必传参数,集群内任意节点地址,用来获取整个集群信息。
–from:制定源节点的id,如果有多个源节点,使用逗号分隔,如果是all源节点变为集群内所有主节点,在迁移过程中提示用户输入。
–to:需要迁移的目标节点的id,目标节点只能填写一个,在迁移过程中提示用户输入。
–slots:需要迁移槽的总数量,在迁移过程中提示用户输入。
–yes:当打印出reshard执行计划时,是否需要用户输入yes确认后再执行reshard。
–timeout:控制每次migrate操作的超时时间,默认为60000毫秒。
–pipeline:控制每次批量迁移键的数量,默认为10
高版本可使用 redis-cli 分配集群槽 集群最少需要6个节点
redis-cli --cluster create 192.168.99.97:6379 192.168.99.97:6380 192.168.99.97:6381 192.168.99.96:6379 192.168.99.96:6380 192.168.99.96:6381 --cluster-replicas 1
redis-cli -c -p 6379 -h 192.168.56.104
keys * 无法查看集群上所有的key
可以通过 get key 获取到值
https://blog.csdn.net/qq2531246791/article/details/105268559