redis 介绍
- 分布式
redis支持主从的模式。原则:Master会将数据同步到slave,而slave不会将数据同步到master。Slave启动时会连接master来同步数据。 这是一个典型的分布式读写分离模型。我们可以利用master来插入数据,slave提供检索服务。这样可以有效减少单个机器的并发访问数量。
redis 安装
wget http://download.redis.io/releases/redis-4.0.2.tar.gz
tar -zxf redis.tar.gz -C /opt/moduels/redis
cd /opt/moduels/redis/src/
make install
编辑redis.conf文件, 更改以下内容
daemonize on改为daemonize yes【目的:redis-server可以后台运行】
requirepass 612501【更改redis密码】
将bind 127.0.0.1改为0.0.0.0
如果报错:

cd /opt/moduels/redis/src/
make MALLOC=libc
数据类型
- 字符串 String
在以上实例中我们使用了 SET 和 GET 命令,键为 runoobkey。
- 哈希 Hash

- 列表 List

Redis Lrange 返回列表中指定区间内的元素,区间以偏移量 START 和 END 指定。 其中 0 表示列表的第一个元素, 1 表示列表的第二个元素,以此类推。 你也可以使用负数下标,以 -1 表示列表的最后一个元素, -2 表示列表的倒数第二个元素,以此类推。
- 集合 Set

- 有序集合 Zset
介绍
Redis 有序集合和集合一样也是string类型元素的集合,且不允许重复的成员。
每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
有序集合的成员是唯一的,但分数(score)却可以重复。

redis 命令 和配置
-
redis-cli -a 612501 -h 127.0.0.1 -p 6380
进入redis
-
redis-cli
进入redis客户端
-
auth <密码>
进入redis服务器
-
info
查看redis服务器信息
-
redis-server 启动,法一:redis-server
最简启动(采用默认配置文件启动)
-
redis-server 启动,法二:redis-server configPath
配置文件启动 (将需要配置的参数写入文件)
-
redis-server 启动,法三:redis-server --port 6379
-
vi redis.conf:requirepass <密码>
修改 redis密码
Redis 发布订阅
- Redis 客户端可以订阅任意数量的频道。
下图展示了频道 channel1 , 以及订阅这个频道的三个客户端 —— client2 、 client5 和 client1 之间的关系:

- 当有新消息通过 PUBLISH 命令发送给频道 channel1 时, 这个消息就会被发送给订阅它的三个客户端:

-
发布/订阅命令 发布/订阅命令
PSUBSCRIBE pattern [pattern ...] 订阅一个或多个符合给定模式的频道。 PUBSUB subcommand [argument [argument ...]] 查看订阅与发布系统状态。 PUBLISH channel message 将信息发送到指定的频道。 PUNSUBSCRIBE [pattern [pattern ...]] 退订所有给定模式的频道。 SUBSCRIBE channel [channel ...] 订阅给定的一个或多个频道的信息。 UNSUBSCRIBE [channel [channel ...]] 指退订给定的频道。
Redis 集群 集群搭建
-
遇到的问题
- gem install redis时,出现:redis requires Ruby version >= 2.2.2
解决方法 参考链接
安装RVM gpg2 --keyserver hkp://keys.gnupg.net --recv-keys D39DC0E3 curl -L get.rvm.io | bash -s stable find / -name rvm -print source /usr/local/rvm/scripts/rvm 查看rvm库中已知的ruby版本 rvm list known 安装一个ruby版本 rvm install 2.3.3 使用一个ruby版本 rvm use 2.3.3 设置默认版本 rvm use 2.3.3 --default 卸载一个已知版本 rvm remove 2.0.0 查看ruby版本: ruby --version 安装redis: gem install redis-
Could not connect to Redis at 127.0.0.1:6379: Connection refused
解决方法:redis-cli -a 612501 -h 127.0.0.1 -p 6380 -
curl: (35) SSL connect error
原因:无法在服务器使用curl命令访问https域名,原因是nss版本有点旧了 解决方法:yum -y update nss
redis持久化
- 持久化含义 持久化是将程序数据在持久状态和瞬时状态间转换的机制。对于程序来说,程序运行中数据是在内存的,如果没有及时同步写入到磁盘,那么一旦断电或者程序突然奔溃,数据就会丢失了,只有把数据及时同步到磁盘,数据才能永久保存,不会因为宕机影像数据的有效性。而持久化就是将数据从程序同步到磁盘的一个动作过程。

redis.conf 配置文件