1、redis 通常被称为数据结构服务器,遵守BSD协议,是一个高性能的key-value数据库。值可以是 字符串(String)、哈希(hash)、列表(list)、集合(set)、有序集合(sorted sets)等类型。
2、Redis与其他key-value缓存产品有以下三个特点:
Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候还可以再次加载使用。
Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,zset(sorted set),hash等数据结构的存储。
Redis支持数据的备份,即master-slave模式的数据备份。
3、string是redis最基本的类型,一个key对应一个value,string可以包含任何数据,比如jpg图片或者序列化的对象,一个键最多能存储512M。
命令 |
描述 |
setex user.2.age 2 14 |
把user.2.age 的值设14 并且2秒后过期失效 |
mset user.4.name lisi user.4.age 34 |
设置user.4.name=lisi,user.4.age=34 |
msetnx user.4.name lisi user.4.age 34 |
所有key都不存在才执行set操作 |
get user.4.name user.4.age user.4.std |
批量获取存在key的值 |
getrange key star end |
字符串的截取有star和end决定 |
getset key value |
设置key的值,并返回key的旧值。 |
append key value |
key存在,在旧值的后面追加value;key不存在,直接set |
setrange key offset value |
用value重写key值的一部分,偏移量由offset指定 |
incr key |
key中如果存储的是数字,则可以通过incr递增key的值,返回递增后的值。如果key不能存在,视为初始值为0 |
incrby key increment |
用指定的步长增加key存储的数字。如果步长increment是负数,则减 |
decr key |
递减key保存的数字,如果key不存在,初始值视为0 |
decrby key decrement |
用指定的步长递减key的值,如果步长decrment是负值,则递增(key必须是数字) |
del key [key] |
删除指定的key,返回删除key的个数 |
strlen key |
获取key中所存储值的长度 |
4、Redis hash是一个键名对集合,是一个string类型的field和value的映射表,hash特别适合存储对象。每个hash可以存储232-1键值对(40多亿)。
对单个key/value操作
5、Redis list 是简单的字符串列表,按照插入顺序排序,可以添加一个元素到列表的头部或尾部。列表可最多存储232-1元素(每个列表可最多存储40多亿)。
命令 |
描述 |
RPUSH key-name value |
将一个值或多个值推入列表的右端 |
LPUSH key-name value |
将一个值或多个值推入列表的左端 |
RPOP key-name |
移除并返回列表最右端的值 |
LPOP key-name |
移除并返回列表最左端的值 |
LINDEX key-name offset |
返回列表中偏移量为offset的元素 |
LRANGE key-name start end |
返回列表中从start到end的值(包括start end) |
LTRIM key-name start end |
对列表进行修剪,只保留start到end的元素(包括start end) |
6、Redis 的Set是string类型的无序集合,集合是通过哈希表实现的,没有先后顺序,所以添加,删除,查找的复杂度都是O(1)。
sadd命令,添加一个string元素到key对应的集合中,成功返回1,如果元素已经在集合中返回0,key对应的set不存在返回错误。集合中最大的成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。
操作单个set
sismember key value 判断某个值是否存在
操作多个set的命令
将一个set的元素移动到另一个set中的命令
set求交集命令
set求并集命令
set 求差集的命令
7、zset(sorted set:有序集合)中也是string类型元素的集合,且不允许重复,不同的是每个元素都会关联一个double类型的分数,redis通过分数来为集合中的成员从小到大进行排序。成员唯一,但是分数可以重复。
命令 |
描述 |
ZADD key-name score member |
将带有给定分值的成员添加到有序集合里面 |
ZREM key-name member |
从有序集合里面移除给定成员,返回被移除数量 |
ZCARD ame |
返回有序集合包含的成员数量 |
ZINCREBY key-name increment member |
将member的分值加上increment |
ZCOUNT key-name min max |
返回分值介于min和max之间的成员数量 |
ZRANK key-name member |
返回成员member在有序集合中的排名 |
ZSCORE key-name member |
返回成员member的分值 |
ZRANGE key-name start stop[WITHSCORES] |
返回有序集合排名中介于strat和stop之间的成员,若有WITHSCORES,则将成员的分值一并返回 |