一、redis数据类型
5. sorted sets类型和操作
sorted set是set的一个升级版本,它给集合中每个元素都定义一个分数,集合中的元素按照其分数排序。
1) zadd 键 分数1 值1 [分数2 值2…]
该命令添加指定的成员到key对应的有序集合中,每个成员都有一个分数。你可以指定多个分数/成员组合。如果一个指定的成员已经在对应的有序集合中了,那么其分数就会被更新成最新的,并且该成员会重新调整到正确的位置,以确保集合有序。分数的值必须是一个表示数字的字符串,并且可以是double类型的浮点数。
2) zrange 集合 起始下标 截止下标 [withscores]
返回有序集合中,指定区间内的成员。其中成员按照score(分数)值从小到大排序。具有相同score值的成员按照字典顺序来排列。
起始下标与截止下标和list类型一致:
0代表队列中第一个元素,1代表第二个元素,依次类推
-1代表队列中最后一个元素,-2代表倒数第二个元素
withscores:返回集合中元素的同时,返回其分数(score)
|
|
3) zrevrange 集合 起始下标 截止下标 [withscores]
返回有序集合中,指定区间的成员。其成员按照score从大到小来排列。
4) zrangebyscore 集合 起始分数 截止分数 withscores(不包含截止分数)
返回有序集合中score(分数)在指定区间的值
5) zrem 集合 值1 [值2…]
删除有序集合中指定的值
6) zincrby 集合 增量 值
给有序集合中指定值的成员的分数(score)值加上增量(increment)。如果集合中没有这个值,则给添加一个分数是increment的值。
7) zrank 集合 值
返回有序集合中指定值的下标。
8) zrevrank 集合 值
返回有序集合中指定值的下标
9) zcount 集合 起始分数 截止分数
返回有序集合中,score值在起始分数与截止分数之间的个数
10) zcard 集合
返回有序集合元素的个数
11) zremrangebyrank 集合 起始下标 结束下标
删除有序集合中,下标在指定区间的元素
12) zremrangebyscore 集合 起始分数 截止分数
删除有序集合中,分数在指定区间的元素
13)zinterstore 新集合 取交集的集合个数 集合1 集合2
取集合1和集合2的交集,并把结果保存到新集合中。在计算交集之前,需要指定计算交集的集合的个数。交集中,值的分数是多个集合中分数的和。
14) zunionstore 新集合 取并集的集合个数 集合1 集合2
取集合1和集合2的并集,并把结果保存到新集合中。在计算并集之前,需要指定计算并集的集合的个数。并集中,值的分数是多个集合中分数的和。
二、Redis常用命令
(一) 键值相关命令
1、 keys 键名
按照键名查找指定的键。支持通配符
2、 exists 键名
确认一个键是否存在
3、 del 键名
删除一个键
4、 expire 键 秒
设置一个键的过期时间,如果键已经过期,将会被自动删除
5、 ttl 键
以秒为单位,返回键的剩余生存时间。
当键不存在时,返回值为-2
当键存在,但没有设置剩余生存时间时,返回-1
6、 select 数据库号
选择一个数据库。
默认连接的数据库是0,可以支持共16个数据库。
在配置文件中,通过databases 16 关键字定义
7、 move 键 数据库号
将当前数据库的键移动到指定的数据空中
8、 randomkey
从当前数据库返回一个随机的键。如果当前库没有任何键,则返回nil
9、 rename 旧名 新名
重命名键
10、 type 键
返回键类型。
返回值
none (key不存在)
string (字符串)
list (列表)
set (集合)
zset (有序集)
hash (哈希表)
(二) 服务器相关命令
1、 ping
测试服务器是否可以连接
2、 echo 字符串
在命令行输出字符串
3、 quit
退出redis数据库
4、 save
保存所有的数据。很少在生产环境直接使用SAVE 命令,因为它会阻塞所有的客户端的请求,可以使用BGSAVE
命令代替. 如果在BGSAVE
命令的保存数据的子进程发生错误的时,用SAVE
命令保存最新的数据是最后的手段
5、 dbsize
返回当前库中键的数量
6、 info
获取服务器的详细信息
7、 config get 参数
获取redis服务器配置文件中的参数。支持通配符
8、 flushdb
删除当前数据库中所有的数据
9、 flushall
删除所有数据库中所有的数据
三、 redis高级应用
1、 给redis服务器设置密码
1)修改redis服务器的配置文件
2)重启redis
3)连接redis
或
2、持久化
Redis 提供了不同级别的持久化方式:
1)RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储。是默认的持久化方式。这种方式是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。这种持久化方式被称为快照 snapshotting(快照)。
|
|
实验:验证dump.rdb数据保存文件
结论:
2) 使用AOF 会让你的Redis更加耐久: 你可以使用不同的持久化策略:无备份,每秒备份,每次写的时候备份。使用默认的每秒备份策略,Redis的性能依然很好(备份是由后台线程进行处理的,主线程会尽力处理客户端请求),一旦出现故障,你最多丢失1秒的数据。
3、主从备份
Redis主从复制特点:
a. Master可以拥有多个slave
b. 多个slave可以连接同一个master外,还可以连接到其它slave
c. 主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
d. 提高系统的伸缩性
Redis主从复制过程:
a. Slave与master建立连接,发送sync同步命令
b. Master会启动一个后台进程,将数据库快照保存到文件中,同时master主进程会开始收集新的写命令并缓存。
c. 后台完成保存后,就将此文件发送给slave
d. Slave将此文件保存到硬盘上
1) 不同服务器配置主从
A)克隆一台linux作为从服务器
克隆机需要进行如下操作:
① vi /etc/sysconfig/network-scripts/ifcfg-eth0
删除MAC地址行
② rm -rf /etc/udev/rules.d/70-persistent-net.rules
删除网卡和MAC地址绑定文件
③ 注意关闭防火墙和SELinux
④ 重启动系统
B)在从服务器上配置
|
|
C)重启从服务器上redis
2) 同一台服务器实现主从配置
这里我们以本机配置 1台Master + 1台Slave 为例子,其中:
A) 复制出从服务器目录
|
|
B) 修改redis-slave1配置文件
|
|
C) 启动服务
|
|
D)验证
|
|
参考资料:
1.Redis http://redis.io
2.Redis中文官方网站 http://www.redis.cn
3.Redis 教程 | 菜鸟教程 http://www.runoob.com/redis/redis-tutorial.html