Redis 笔记(一)——数据类型简介

Redis 是一个 key-value 存储系统,但是它的 value 值不仅仅可以存储字符串,value 共有 五种 数据结构类型,具体如下:

数据结构类型

结构类型结构存储的值结构的读写能力
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"

 附:Redis 命令参考 http://redisdoc.com/

 

原文地址:https://www.cnblogs.com/zawier/p/8524917.html