Redis 数据结构
结构类型 | 结构存储的值 | 结构的读写能力 |
---|---|---|
STRING | 可以是字符串、整数或者浮点数 | 对整个字符串或者字符串中的一部分执行操作;对整数和浮点数执行自增(increment) 或者自减(decrement)操作 |
LIST | 一个链表,链表上的每个节点都包含了一个字符串 | 从链表的两端推入或者弹出元素;根据偏移量对链表进行修剪;读取单个或多个元素;根据值查找或者移除元素 |
SET | 包含字符串的无序收集器(unordered collection),并且被包含的每个字符串都是独一无二的 | 添加、获取、移除单个元素;检查一个元素是否存在于集合中;计算交集、并集、差集;从集合中随机获取元素 |
HASH | 包含键值对的无序散列表 | 添加、获取、移除单个键值对;获取所有键值对 |
ZSET | 字符串成员(member)与浮点数分值(score)之间的有序映射,元素的排列顺序由分值的大小决定 | 添加、获取、移除单个元素;根据分值范围(range)或者成员来获取元素 |
STRING命令
- GET 获取给定键的值
- SET 设置键和值
- DEL 删除存储在给定键中的值(适用于所有类型)不存在的话会返回nil,删除成功返回删除的数量
LIST命令
- LPUSH / RPUSH : 将元素推入列表的左端和右端 , 返回列表当前长度
- LPOP / RPOP : 从列表的左端和右端弹出元素, 返回弹出的值
- LINDEX : 获取列表在给定位置上的一个元素
- LRANGE : 获取列表在给定范围上的所有元素
SET命令
-
SADD : 将元素添加到集合
-
SREM : 从集合中移除元素
-
SISMEMBER : 快速地检查一个元素是否已经存在于集合中
-
SMEMBERS : 获取集合包含的所有元素 (效率不高)
-
SINTER / SUNION / SDIFF : 分别执行常见的交集运算、并集计算和差集计算。
HASH命令
- HSET : 在散列中关联起给定的键值对,返回给定的键是否已经存在
- HMSET : 同时将多个字段-值对设置到散列中
HMSET key field value [field value ...]
- HGET : 获取指定散列键的值
- HGETALL : 获取散列包含的所有键值对
- HDEL : 如果给定键存在于散列里面,那么移除这个键,返回移除之前是否存在
- HINCRBY : 对散列存储到值执行自增量操作
hincrby key member 10
(让member 的值 + 10)
ZSET命令
- ZADD : 将一个带有给定分值的成员添加到有序集合中,返回新添加的元素数量
- ZRANGE : 根据元素索引获取一个或多个值。在获取所有元素时,多个元素会按照分值从小到大进行排序。
- ZREVRANGE : ZRANGE的逆序
zrevrange key 0 - 1 withscores
(从大到小排列所有member和Joscore) - ZRANGEBYSCORE : 根据分值(score)范围获取集合中的一部分元素。
- ZREMRANGEBYRANK : 移除有序集中,指定排名(rank)区间内的所有成员。
zremrangebyrank key 0 10
(删除了分值前十)zremrangebyrank key 0 -11
(保留分值前十) - ZREM : 如果存在给定成员,则移除,返回被移除的元素的数量
- ZSCORE : 返回有序集合中,成员的分数值
zscore key member
- ZINCRBY : 对有序集合成员的分值执行增量操作
zincrby key -5 member
(让member的score - 5) - ZINTERSTORE : 计算给定的一个或多个有序集的交集
zinterstore newkey 2 keya keyb
参考资料
Redis实战 【美】Josiah L.Carlson