Redis 的数据类型
$ redis-cli -v
redis-cli 3.2.6
redis 是 key-value 的数据结构,每条数据都是⼀个键值对。
- 键的类型是字符串。
- 值的类型分为五种:
- 字符串
string - 哈希
hash - 列表
list - 集合
set - 有序集合
zset
- 字符串
注意:键不能重复!
可以通过 type 命令查看 Reids key 所存储的 value 的类型。
1)字符串 string
127.0.0.1:6379> set k1 aa
OK
127.0.0.1:6379> get k1
"aa"
127.0.0.1:6379> type k1
string
2)哈希 hash
127.0.0.1:6379> hset k2 k2_key aa
(integer) 1
127.0.0.1:6379> hget k2 k2_key
"aa"
127.0.0.1:6379> type k2
hash
3)列表 list
127.0.0.1:6379> lpush k3 a b c
(integer) 3
127.0.0.1:6379> lrange k3 0 -1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> type k3
list
4)集合 set
127.0.0.1:6379> sadd k4 a b c
(integer) 3
127.0.0.1:6379> smembers k4
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> type k4
set
5)有序集合 zset
127.0.0.1:6379> zadd k5 10 a 20 b 30 c
(integer) 3
127.0.0.1:6379> zrange k5 0 -1
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> zrange k5 0 -1 WITHSCORES
1) "a"
2) "10"
3) "b"
4) "20"
5) "c"
6) "30"
127.0.0.1:6379> type k5
zset
TTL
语法:
TTL key
以秒为单位,返回给定 key 的剩余生存时间(TTL, time to live)。
返回值:
- 当
key不存在时,返回-2。 - 当
key存在但没有设置剩余生存时间时,返回-1。 - 否则,以秒为单位,返回 key 的剩余生存时间。
(1)字符串 string
127.0.0.1:6379> set k1 aa
OK
127.0.0.1:6379> ttl k1
(integer) -1
127.0.0.1:6379> expire k1 10
(integer) 1
127.0.0.1:6379> ttl k1
(integer) 8
127.0.0.1:6379> ttl k1
(integer) 7
127.0.0.1:6379> set k1 aa
OK
127.0.0.1:6379> ttl k1
(integer) -1
调用 set 命令后会重置 key 的 ttl。
(2)哈希 hash
127.0.0.1:6379> hset k2 k2_key1 aa
(integer) 1
127.0.0.1:6379> ttl k2
(integer) -1
127.0.0.1:6379> expire k2 100
(integer) 1
127.0.0.1:6379> ttl k2
(integer) 98
127.0.0.1:6379> hset k2 k2_key2 b
(integer) 1
127.0.0.1:6379>
127.0.0.1:6379> ttl k2
(integer) 90
127.0.0.1:6379> ttl k2
(integer) 87
调用 hset 命令后不会重置 key 的 ttl。
(3)列表 list
127.0.0.1:6379> lpush k3 a b c
(integer) 3
127.0.0.1:6379> ttl k3
(integer) -1
127.0.0.1:6379> expire k3 100
(integer) 1
127.0.0.1:6379> ttl k3
(integer) 89
127.0.0.1:6379> lpush k3 d e f
(integer) 6
127.0.0.1:6379> ttl k3
(integer) 80
调用 lpush 命令后不会重置 key 的 ttl。
(4)集合 set
127.0.0.1:6379> sadd k4 a b c
(integer) 3
127.0.0.1:6379> ttl k4
(integer) -1
127.0.0.1:6379> expire k4 100
(integer) 1
127.0.0.1:6379> ttl k4
(integer) 97
127.0.0.1:6379> sadd k4 d e f
(integer) 3
127.0.0.1:6379> ttl k4
(integer) 86
调用 sadd 命令后不会重置 key 的 ttl。
(5)有序集合 zset
127.0.0.1:6379> zadd k5 10 a 20 b 30 c
(integer) 3
127.0.0.1:6379> ttl k5
(integer) -1
127.0.0.1:6379> expire k5 100
(integer) 1
127.0.0.1:6379> ttl k5
(integer) 97
127.0.0.1:6379> zadd k5 10 d 20 e 30 f
(integer) 3
127.0.0.1:6379> ttl k5
(integer) 84
调用 zadd 命令后不会重置 key 的 ttl。
结论
- 字符串
string:调用set会重置key的 ttl。 - 哈希
hash:不会重置key的 ttl。 - 列表
list:不会重置key的 ttl。 - 集合
set:不会重置key的 ttl。 - 有序集合
zset:不会重置key的 ttl。
参考
- Redis 命令参考
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...