后端开发都应该掌握的Redis基础
Posted 顶级程序员
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了后端开发都应该掌握的Redis基础相关的知识,希望对你有一定的参考价值。
源 / juejin 作者 / 张君鸿
Redis的数据结构
五种基础数据结构
-
String:字符串,是构建其他数据结构的基础 -
Hash:哈希列表 -
List:列表 -
Set:集合,在哈希列表的基础上实现 -
Sort Set:有序集合
复杂的数据结构
-
Bitmaps:位图,在string的基础上进行位操作,可以实现节省空间的数据结构。 -
Hyperloglog:用于估计一个 set 中元素数量的概率性的数据结构。 -
Geo:geospatial,地理空间索引半径查询。 -
BloomFilter:布隆过滤器。
不同数据结构的相同之处
Redis的通用命令
keys
# key命令,时间复杂度为O(n)
keys pattern #pattern可为一个包含匹配模式的字符串,可以包含*,+,?,[a-z]等模式。
> mset hello_test1 one hello_test2 two helloa a hellob b
> keys hello*
1) "hello_test1"
2) "hello_test2"
3) "helloa"
4) "hellob"
> keys heelo?
1) "helloa"
2) "hellob"
> keys hello[a-z]
1) "helloa"
2) "hellob"
exists
# exists命令,时间复杂度O(1)
exists key
> set test1 t1
> exists test1 test2
(integer) 1 #只有一个key存在
> exists test3 test3
(integer) 0 #key都不存在
del
# del命令,时间复杂度O(n)
del key
set test t
del test
(integer) 1
mset test1 2 test2 1
del test1 test2 test3
(integer) 2 # 返回2,表示成功删除两个
再次删除,返回0,因为删除成功个数为0
del test1 test2 test3
(integer) 0
expire,pexpire
# expire命令,时间复杂度为O(1)
expire key seconds
# pexpire命令,时间复杂度为O(1)
pexpire key milliseconds
> mset test test_value test1 test1_value
> expire test 10 #设置10秒后过期
(integer) 1
> pexpire test1_value 10000 #设置10000毫秒(10s)后过期
(integer) 1
> expire ttt 100
(integer) 0 # 不存在的key,设置失败,返回0
ttl,pttl
-
当key不存在或过期时间,返回-2。 -
当key存在且永久有效时,返回-1。 -
当key有设置过期时间时,返回为剩下的秒数(pttl为毫秒数)
# ttl命令,时间复杂度O(1)
ttl key
# pttl命令,时间复杂度O(1)
pttl key
set test test
expire test 100
ttl test
(integer) 98#返回剩下的秒数
set test1 #永久有效
ttl test1
(integer) -1
ttl test2
(integer) -2#不存在或过期
100秒后
ttl test # test已过期
(integer) -2
expireat,pexpireat
#expireat命令,时间复杂度为O(1)
expireat key timestamp
#pexpireat命令,时间复杂度为O(1)
pexpireat key milliseconds-timestamp
set test test
expireat test 1560873600 # 2019-06-19 00:00:00
(integer) 1
set test1 test1
pexpireat test1 156087360000 # 2019-06-19 00:00:00的毫秒表示
(integer) 1
persist
# persist命令,时间复杂度O(1)
persist key
> set test test
> ttl test
(integer) -1 # 表示永久有效
> persist test
(integer) 0 # 对永久有效或不存在的key使用persist命令,返回
> expire test 10
(integer) 1
> persist test
(integer) 1
type
# type命令,时间复杂度O(1)
type key
set test test
type test
string
hset htest test test
type htest
hash
小结
-END-
【读者福利】9.9元Python编程课
专为零基础小白打造
学Python就像打游戏
⏰限时24h,速速抢购 以上是关于后端开发都应该掌握的Redis基础的主要内容,如果未能解决你的问题,请参考以下文章