Redis介绍
Redis使用C语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,常用数据类型如下:
- 字符串类型
- 散列类型
- 列表类型
- 集合类型
- 有序集合类型
本文采用环境:CentOS7、Redis3.0.0版本演示
Redis的应用场景
- 实现应用缓存(不经常更换的内容)
- 网站访问统计
- 结合lua实现接口频率访问控制
- 实现分布式锁
单机版本安装
安装reids需要先将官网下载的源码进行编译,编译环境依赖gcc环境,如果没有gcc环境,需要安装gcc:yum install gcc-c++
Redis中文官网:http://www.redis.cn
源码包下载:http://download.redis.io/releases/redis-3.0.0.tar.gz
- 将reids-3.0.0.tar.gz拷贝到/usr/local下
- 解压源码 tar -zxvf reids-3.0.0.tar.gz
- 进入解压后目录编译 cd /usr/local/redis-3.0.0 & make
- 安装到指定的目录:如 /usr/local/redis,cd /usr/local/redis-3.0.0 & make PREFIX=/usr/local/redis install
- 找到源码包中redis.conf文件,该文件是redis的配置文件。默认端口为port=6379
- 拷贝到安装目录下 cp 源码包下的redis.conf /usr/local/redis/bin
- 启动方式分为两种,前端启动和后端启动
前端启动:进入到/usr/local/redis/bin目录下,./redis-server即可启动
后端启动:需要修改redis.conf配置文件中的daemonize yes未后端模式启动。命令:cd /usr/local/redis/bin ./redis-server ./redis.conf
- reids关闭命令:cd /usr/local/redis/bin ./redis-cli shutdown
集群版本安装
原理不做讲解:可参考淘淘redis集群原理。讲解的非常清楚。本文部分环境安装介绍来源于淘淘。
- redis集群管理工具redis-trib.rb依赖ruby环境,首先需要安装ruby环境
安装ruby yum install ruby & yum install rubygems
- 安装ruby和redis的接口程序。将下载好的reids-3.0.0.gem(需提前进行下载)拷贝到/usr/local下
执行:gem install /usr/local/reids-3.0.0.gem
- 集群节点规划
这里实现的是伪集群,用不同的端口号表示不同的节点。如下:
主节点:192.168.15.130:7001 192.168.15.130:7002 192.168.15.130:7003
从节点:192.168.15.130:7004 192.168.15.130:7005 192.168.15.130:7006
- 在/usr/local下创建redis-cluster目录,其下创建7001、7002...7006目录。
- 将redis安装目录bin下的文件拷贝到每个700x目录内,同事将redis源码目录src下的redis-trib.rb文件拷贝到redis-clulster目录下。(如果有rdb或者dump文件,请先删除,在拷贝到700x目录,否则启动失败)
- 修改每个700x目录下的reids.conf配置文件:
port xxxx
cluster-enabled yes
- 配置好以上内容。分别进入7001、7002...7006目录下:执行./redis-server ./redis.conf 也可以编写shell脚本一键启动。分别启动完毕后(使用ps aux|grep redis)查看启动进程
- 执行redis-trib.rb,此脚本是ruby脚本,需要依赖ruby环境,在前文中已安装过。
cd /usr/local/redis-cluster目录下执行:
./redis-trib.rb create --replicas 1 192.168.15.130:7001 192.168.15.130:7002 192.168.15.130:7003 192.168.15.130:7004 192.168.15.130:7005 192.168.15.130:7006执行创建集群命令
对以上命令说明:reids集群至少3个主节点,每个主节点有一个从节点共6个节点。
replicas指定为1,表示每个主节点有一个从节点。
- 集群创建成功登陆任意redis节点查询集群中的节点情况
客户端已集群方式登陆:./redis-cli -c -h 192.168.15.130:7002 & cluster nodes
其中-c表示以集群方式连接redis,-h 指定ip地址,-p指定端口号。cluster nodes查询集群节点信息,cluster-info查询集群状态信息
- 至此集群搭建成功。
- 可添加主节点:
集群创建成功后可以向集群中添加节点,下面是添加一个master主节点。添加7007节点,参考集群节点规划。添加一个7007目录作为新节点。
执行以下命令:./redis-trib.rb add-node 192.168.15.130:7007 192.168.15.130:7001
查看集群状态 cluster nodes
添加主节点。第一个ip为新添加节点ip,第二个ip为主节点任意一个ip地址
- hash槽重新分配
添加完主节点需要对主节点进行hash槽分贝,这样改主节点才可以存储数据。redis集群有16384个槽,集群中的每个节点分配自己槽,通过查看集群节点可以看到槽占用情况:cluster nodes
给刚添加的7007节点分配槽:
- 连接上集群:./redis-trib-rb reshard 192.168.15.130:7001(连接集群中任意一个节点都行)
- 输入分配的槽数量
- 输入接收槽的节点:通过cluster nodes查看7007节点id。
- 输入源节点id。输入源节点id,槽将从源节点中拿,分配后的槽在源节点中就不存在了,输入all从所有源节点中获取槽,输入done取消分配。
- 输入yes开始移动槽到目标节点id
- 添加从节点:集群创建成功后可以向集群中添加节点,下面是添加一个slave从节点。添加节点7008从节点,将7008作为7007的从节点。
./redis-trib.rb add-node --slave --master-id 主节点id 添加节点的ip和端口 集群中已存在的节点ip和端口
执行如下命令:./redis-trib.rb add-node --slave --master-id 主节点id 192.168.15.130:7008 192.168.15.130:7001
主节点id为7007节点id。可通过cluster nodes查看
代码:SpringBoot+Redis整合代码地址,可一键切换单机、集群环境。(https://gitee.com/zhangfalu/spring-boot-starter-ext-redis)
个人gitee:https://gitee.com/zhangfalu
Redis环境搭建(整合SprinigBoot一键切换集群和单机环境)
原文:https://www.cnblogs.com/aliases/p/12682698.html