redis 介绍
- 分布式
redis支持主从的模式。原则:Master会将数据同步到slave,而slave不会将数据同步到master。Slave启动时会连接master来同步数据。 这是一个典型的分布式读写分离模型。我们可以利用master来插入数据,slave提供检索服务。这样可以有效减少单个机器的并发访问数量。
redis 安装
wget http://download.redis.io/releases/redis-4.0.2.tar.gztar -zxf redis.tar.gz -C /opt/moduels/rediscd /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 Zrange 返回有序集中,指定区间内的成员。 下标参数 start 和 stop 都以 0 为底,也就是说,以 0 表示有序集第一个成员,以 1 表示有序集第二个成员,以此类推。 你也可以使用负数下标,以 -1 表示最后一个成员, -2 表示倒数第二个成员,以此类推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 配置文件