共计 3811 个字符,预计需要花费 10 分钟才能阅读完成。
1. 什么是 Redis
Redis是用 C 语言开发的一个开源的高性能键值对(key-value)数据库。它通过提供多种键值数据类型来适应不同场景下的存储需求,目前为止 Redis 支持的键值数据类型如 下:字符串类型, 散列类型, 列表类型, 集合类型, 有序集合类型。
2.Redis 安装
redis 是 C 语言开发, 安装 redis 需要先将官网下载的源码进行编译,编译依赖 gcc 环境,如果没有 gcc 环境,需要安装gcc:yum install gcc-c++
注: redis3.0 版本 增加 redis 集群功能。
下载地址: http://download.redis.io/releases/redis-3.0.0.tar.gz
1) 我这里先将下载好的包上传到服务器 /usr/local/src/redis 下
2) 解压 tar -zxvf redis-3.0.0.tar.gz (z: 标识解压格式,x: 解压缩,v: 显示解压进度,f: 解压文件)
3) 进入解压后的目录进行编译
cd /redis-3.0.0
make
4) 安装到指定目录 我这里安装到 /usr/local/redis
make PREFIX=/usr/local/redis insatll 注意大写
5) 复制配置文件到安装目录,
redis 编译后会有一个默认的配置文件, 安装目录中没有, 我们如果做配置需要把 redis 默认的配置文件拷贝到 redis 的安装目录下
cp /usr/local/src/redis/redis-3.0.0/redis.conf /usr/local/redis/bin
3.Redis 启动
1) 前端模式启动
在安装目录 bin 下, 直接运行 ./redis-server 将以前端模式启动,前端模式启动的缺点是 ssh 命令窗口关闭则 redis-server 程序结束
这里我们可以看到 redis 默认端口为 6379, 此时在命令行下面的光标会一直闪烁, 如果此时按下 CTRL+C 会关闭服务
2) 后端模式启动
需要将复制过来的 redis 配置文件 redis.conf 做修改
[root@localhost bin]# vi redis.conf 在 37 行 daemonize 改为 yes 以后端模式启动(输入 i 进入编辑模式, 修改好以后按一下 ESC, 输入 ”:wq” 保存并退出)
[root@localhost bin]# ./redis-server redis.conf
这里可以看到 redis 启动了, 下面咱们测试一下,
[root@localhost bin]# ./redis-cli 执行命令 进入 redis 命令号客户端
输入 ping
标识我们的服务启动成功没有问题。
4. 集群搭建
1) 说明
1> 集群中每个 redis 服务作为一个 redis 节点, 各个节点之间彼此互联(PING–>PONG 机制)
2> 节点的 fail 是通过集群中超过半数的节点检测失效时才生效.
3> 客户端与 redis 节点直连 , 不需要中间 proxy 层.客户端不需要连接集群所有节点 , 连接集群中任何一个可用节点即可
4> redis-cluster把所有的物理节点映射到 [0-16383]slot 上,cluster 负责维护node<->slot<->value
Redis 集群中内置了 16384 个哈希槽,当需要在 Redis 集群中放置一个 key-value 时,redis 先对 key 使用 crc16 算法算出一个结果,然后把结果对 16384 求余数,这样每个 key 都会对应一个编号在 0-16383 之间的哈希槽,redis 会根据节点数量大致均等的将哈希槽映射到不同的节点
2) 配置 redis 集群需要一个 ruby 环境
redis集群管理工具 redis-trib.rb 依赖 ruby 环境,首先需要安装 ruby 环境:
安装ruby
yum install ruby
yum install rubygems
我们需要使用 redis 创建集群的脚本在 redis 的源码包 src 中
这个脚本运行需要一个 redis-3.0.0.gem 运行环境包,
我这里将这个包放到 /usr/local/src/redis 和 redis 源码文件在一个目录下,
然后 安装执行 gem install /usr/local/redis-3.0.0.gem
3) redis 集群因为内置存在的投票容错机制, 即上述说明中的第二点, 超过半数的节点检测失效时才生效, 所以我们的 redis 集群至少有三个节点 ,
这三个节点作为主节点, 当然我们还需要需要三个从节点, 这样我们需要弄出 6 个 redis, 我这里只装了一个虚拟机作为服务器, 那我这里先创建 6 个 redis 实例来模拟。
创建 redis 实例, 这里简要说明一下, 我这里在 /usr/local 下面创建一个文件下 redis-cluster 文件夹
mkdir redis-cluster
cd /usr/local/redis/bin
cp -r bin ../redis-cluster/redis01
cd /usr/local/redis-cluster/redis01
删除文件夹中 dump.rdb 文件删除
修改配置文件
端口改为 7001,
cluster-enabled yes 的注释放开 默认是注释掉的, 指定要做集群,
之后就复制这个 redis01 分别命名 redis02,redis03,***redis06 同时修改端口分别为 7002,7003,****7006 保存
创建实例完成后, 把 ruby 脚本 redis-trib.rb (在 redis 源码 src 路径下的) 复制到 redis-cluster 目录下
在创建 redis 集群之前启动这 6 个 redis 实例
在 /usr/local/redis-cluster 目录下执行
./redis-trib.rb create –replicas 1 IP 地址:7001 IP 地址:7002 IP 地址:7003 IP 地址:7004 IP 地址:7005 IP 地址:7006
提示输入 yes
4) 测试 redis 集群
因为 redis 集群是相互连接的, 我没不需要一个个连接, 只需要连接 redis 实例中的一个就可以 执行以下命令
[root@localhost redis-cluster]# redis01/redis-cli -h IP 地址 -p 7001 -c
其中 -c 表示以集群方式连接 redis,-h 指定 ip 地址,-p指定端口号
下面关于 Redis 的文章您也可能喜欢,不妨参考下:
Ubuntu 14.04 下 Redis 安装及简单测试 http://www.linuxidc.com/Linux/2014-05/101544.htm
Redis 主从复制基本配置 http://www.linuxidc.com/Linux/2015-03/115610.htm
Redis 集群搭建与简单使用 http://www.linuxidc.com/Linux/2017-03/142210.htm
CentOS 7 下 Redis 的安装与配置 http://www.linuxidc.com/Linux/2017-02/140363.htm
Ubuntu 14.04 安装 Redis 与简单配置 http://www.linuxidc.com/Linux/2017-01/139075.htm
Ubuntu 16.04 环境中安装 PHP7.0 Redis 扩展 http://www.linuxidc.com/Linux/2016-09/135631.htm
Redis 单机 & 集群离线安装部署 http://www.linuxidc.com/Linux/2017-03/141403.htm
CentOS 7.0 安装 Redis 3.2.1 详细过程和使用常见问题 http://www.linuxidc.com/Linux/2016-09/135071.htm
Ubuntu 16.04 环境中安装 PHP7.0 Redis 扩展 http://www.linuxidc.com/Linux/2016-09/135631.htm
Ubuntu 15.10 下 Redis 集群部署文档 http://www.linuxidc.com/Linux/2016-06/132340.htm
Redis 实战 中文 PDF http://www.linuxidc.com/Linux/2016-04/129932.htm
Redis 热迁移实战总结 http://www.linuxidc.com/Linux/2017-02/141083.htm
Redis3.0 配置文件详解 http://www.linuxidc.com/Linux/2017-03/141369.htm
本文永久更新链接地址:http://www.linuxidc.com/Linux/2017-11/148596.htm