redis 配置
redis 的配置项很多 ,基本掌握几个就可以使用了
- bind 132.90.101.230 (绑定ip 生产必须绑定)
- appendonly yes
- daemonize yes (后台进程模式)
- port 6371 (端口号)
- cluster-enabled yes(是否启用集群)
- cluster-config-file nodes-6371.conf (集群配置文件 此文件是系统自动生成,定义号文件名即可)
- cluster-node-timeout 15000 (节点的延迟)
- protected-mode yes (保护模式 保护模式下 要进行绑定ip和 使用密码)
- tcp-backlog 511
- timeout 0
- tcp-keepalive 300
- supervised no
- pidfile /var/run/redis_6379.pid
- loglevel notice
- logfile “”
- requirepass password (登录密码)
- save “” (不进行持久化操作 同时把快照和aof相关设置注释掉)
- maxmemory 1536mb (设置最大内存 生产必须设置)
- maxmemory-policy allkeys-lru (内存满了以后的内存清理策略 优先清理最少使用的)
redis 不持久化操作配置内存清理 redis 配置详细讲解
redis 启动
redis 源码安装以后会在/usr/local/bin/ 目录下生成 redis-server redis-cli 的链接文件.
redis-server
直接输入此命令启动是 启动一个 非后台进程 默认配置(p:6379 h:127.0.0.1 no password)
redis-server **.conf
启动是带配置参数的启动方式 这种方式是单机启动 非集群启动. 由配置参数决定
下面说一下 redis 集群启动
redis集群有三中方式的集群配置
- 客户端集群 客户端连接通过hash 类似hashmap的方式去把存储的东西打散到不同的节点去存储. 缺点是:服务端的节点会不平衡,有的节点多,有的节点少.
- 代理 客户端和服务端之间增加一层代理 可控性进一步加强(代理自己可控) 缺点是 增加一层维护 代理有损耗 不适合小公司
- 服务端集群 是redis官方在v3以后 提出的一种集群方式 最少6个节点 3主三从 优点是官方维护.
搭建指南
- redis 源码安装
- 根据端口号生成6个不同端口的配置文件
- 使用
redis-server **.conf
的方式依次将每个redis 实例都启动完毕 ps -ef |grep redis
检查redis 的启动情况- 安装搭建集群需要的依赖
yum -y install ruby ruby-devel rubygems rpm-build
gem install redis
redis-trib.rb create --replicas 1 132.90.101.230:6371 132.90.101.230:6372 132.90.101.230:6373 132.90.101.231:6374 132.90.101.231:6375 132.90.101.231:6376
replicas 后面的1 代表每个主一个从 后面跟上6个实例的真实ip和端口号 ip要填写成客户端访问的ip(如果绑定多个ip的话)
- 继续输入
yes
此时redis-cluster集群已经搭建好了
命令行测试
redis-cli -c -h ip地址 -p 端口号 -a 密码
set good good
get good
常用操作
redis-cli -c -h 192.168.2.121 -p 6381 -a 12345678 cluster nodes
查看当前集群下的节点./redis-trib.rb add-node 127.0.0.1:7006 127.0.0.1:7000
添加节点 将7006实例添加到7000节点所在的集群中- 删除集群中某一个主节点
如果删除的节点是主节点,这里我们删除127.0.0.1:7006节点,这个节点有1000个哈希槽 首先要把节点中的哈希槽转移到其他节点中,执行下面的命令 ./redis-trib.rb reshard 127.0.0.1:7000 系统会提示我们要移动多少哈希槽,这里移动1000个,因为127.0.0.1:7006节点有1000个哈希槽 然后系统提示我们输入要接收这些哈希槽的节点的ID,这里使用127.0.0.1:7001的节点ID 然后要我们选择从那些节点中转出哈希槽,这里一定要输入127.0.0.1:7006这个节点的ID,最后输入 done 表示输入完毕 最后一步,使用下面的命令把这个节点删除 ./redis-trib.rb del-node 127.0.0.1:7006 127.0.0.1:7006
- 删除集群中某一个从节点
./redis-trib.rb del-node 127.0.0.1:7006 127.0.0.1:7006