SortedSet类型
在此类型中,每个元素都有一个分数
key -> string
value -> sorted([socre,member],[score,member]...)
# 添加元素
zadd key score member
# 遍历集合
zrange key start stop [withscores] #升序
zrevrange key start stop [withscores]#降序
# 返回指定分数区间内元素个数
zcount key min max
# 返回成员中的排名(从小到大)
zrank key member
# 删除一个或者多个元素
zrem key member[member...]
# 返回成员中的排名(从大到小)
zrevrank key member
Hash类型
key -> string
value -> hash([key:value]....)
# 添加数据 field是hash里键值对中的键
hset key field value
# 取数据
hget key value
# 批量添加数据
hmset key field value....
# 批量读取数据
hmegt key field....
# 删除数据
hdel key field....
# 判断给定的field域是否存在,存在域返回1,不存在或者key不存在返回0
hexists key field
# 返回哈希表key中,所有的键值对
hgetall key
# 返回哈希表key中,所有的键,即所以的field
hkeys key
# 返回哈希表key中元素数量
hlen key
# 返回哈希表中,所有的键值对中的值
hvals key
与key有关的命令
# 删除键
del key[key....]
# 查找符合所有给定模式pattern的key
keys pattern
# *匹配所有的的key h?llo匹配hello,hallo等
# h*llo 匹配 hllo和heeeello等
# h[ae]llo匹配hello和hallo,但不匹配hillo
# 检测key是否存在,存在返回1,否则返回0
exists key
# 为给定的key设置生存时间
expire key seconds
# 以秒为单位,返回给定key的剩余生存时间,不存在返回-2,存在但没有设置生存时间返回-1
ttl key
# 移除给定key的生存时间
persist key
# 返回key的类型
type key
Redis的配置文件相关条目
Redis数据持久化
持久化:数据从内存到磁盘的过程
数据持久化的两种方式
- rdb 默认打开 磁盘持久化文件 xxx.rdb 将数据以二进制的形式写入磁盘
- aof 默认关闭 磁盘持久化文件 xxx.aof 直接将生成数据的命令写入磁盘
两者持久化方式的对比
- 随着时间推移,存命令的aof占用的内存会越来越多,因此aof文件大,恢复时间长,效率低,rdb文件较小,恢复时间短,效率更高
- rdb方式同步数据按照用户设定的频率来同步,容易丢数据,数据完整性较低,而aof同步数据频率固定,数据较为完整
对应的配置文件中有关的条目如下
注意
aof和rdb模式可以同时打开,因为二者不是写同一个磁盘文件
aof和rdb模式可以同时关闭
两种模式都开启时,若要进行数据恢复操作,从效率上考虑使用rdb模式,从数据完整性上考虑使用aof模式
C++有关使用Redis的接口很多,需要根据需要单独学习