Redis 笔记(一)——数据类型简介
结构类型 | 结构存储的值 | 结构的读写能力 |
---|---|---|
STRING | 可以是字符串、整数或者浮点数 | 另有自增、自减操作 |
LIST | 一个链表,每个节点包含一个字符串 | |
SET | 包含无序、不重复的字符串 | 可计算交、并、差集,可随机获取元素 |
HASH | 包含键值对的无序散列表 | |
ZSET | 字符串(键)与分值(值-浮点数)之间的有序(按分值)映射 | 可根据分值或成员获取元素 |
一些简单的操作:
字符串 STRING 操作:GET、SET、DEL
# 使用 redis-cli 127.0.0.1:6379> set hello wordl OK 127.0.0.1:6379> get hello "wordl" 127.0.0.1:6379> del hello (integer) 1 127.0.0.1:6379> get hello (nil)
列表 LIST 操作:LPUSH、RPUSH、LPOP、RPOP、LINDEX、LRANGE
# 在列表右侧添加元素 127.0.0.1:6379> rpush list-key item (integer) 1 127.0.0.1:6379> rpush list-key item2 (integer) 2 127.0.0.1:6379> rpush list-key item (integer) 3 # 获取列表所有元素(索引 -1 表示最后一个元素索引) 127.0.0.1:6379> lrange list-key 0 -1 1) "item" 2) "item2" 3) "item" # 获取指定索引的元素(从 0 开始) 127.0.0.1:6379> lindex list-key 1 "item2" # 从左侧弹出一个元素 127.0.0.1:6379> lpop list-key "item" 127.0.0.1:6379> lrange list-key 0 -1 1) "item2" 2) "item"
集合 SET 操作:SADD、SREM、SISMEMBER、SMEMBERS、SINTER、SUNION、SDIFF
127.0.0.1:6379> sadd set-key item (integer) 1 127.0.0.1:6379> sadd set-key item2 (integer) 1 127.0.0.1:6379> sadd set-key item3 (integer) 1 # 无法添加重复元素 127.0.0.1:6379> sadd set-key item (integer) 0 # 获取 SET 中的所有元素 127.0.0.1:6379> smembers set-key 1) "item" 2) "item3" 3) "item2" # 判断元素是否在 SET 中 127.0.0.1:6379> sismember set-key item4 (integer) 0 127.0.0.1:6379> sismember set-key item (integer) 1 127.0.0.1:6379> srem set-key item2 (integer) 1 127.0.0.1:6379> smembers set-key 1) "item" 2) "item3" # 删除 SET 中的指定元素 127.0.0.1:6379> srem set-key item2 (integer) 0
哈希 HASH 操作:HSET、HGET、HGETALL、HDEL
127.0.0.1:6379> hset hash-key sub-key1 value1 (integer) 1 127.0.0.1:6379> hset hash-key sub-key2 value2 (integer) 1 # 无法添加重复的 key, 添加后会覆盖之前的 value 值 127.0.0.1:6379> hset hash-key sub-key1 value1 (integer) 0 # 获取所有的 key, value 127.0.0.1:6379> hgetall hash-key 1) "sub-key1" 2) "value1" 3) "sub-key2" 4) "value2" # 删除指定的 key 的键值对 127.0.0.1:6379> hdel hash-key sub-key2 (integer) 1 127.0.0.1:6379> hdel hash-key sub-key2 (integer) 0 127.0.0.1:6379> hdel hash-key sub-key1 (integer) 1 127.0.0.1:6379> hgetall hash-key (empty list or set)
有序集合 ZSET 操作:ZADD、ZRANGE、ZRANGEBYSCORE、ZREM
# 添加元素 memebers,并指定其 分值 为 728 127.0.0.1:6379> zadd zset-key 728 memeber1 (integer) 1 127.0.0.1:6379> zadd zset-key 982 member0 (integer) 1 127.0.0.1:6379> zadd zset-key 982 member0 (integer) 0 # 获取指定范围的元素(元素按照 分值 升序排列) 127.0.0.1:6379> zrange zset-key 0 -1 withscores 1) "memeber1" 2) "728" 3) "member0" 4) "982" 127.0.0.1:6379> zrange zset-key 0 -1 1) "memeber1" 2) "member0" # 获取在指定分值范围内的元素 127.0.0.1:6379> zrangebyscore zset-key 0 800 withscores 1) "memeber1" 2) "728" # 删除指定成员的元素 127.0.0.1:6379> zrem zset-key memeber1 (integer) 1 127.0.0.1:6379> zrem zset-key member1 (integer) 0 127.0.0.1:6379> zrange zset-key 0 -1 withscores 1) "member0" 2) "982"