开源项目

Redis——API的理解和使用

2018-11-13  本文已影响5人  莫问以

一、全局命令
1、查看所有键

keys *

下面插入了3对字符串类型的键值对:
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> set java jedis
OK
127.0.0.1:6379> set python redis-py
OK

keys*命令会将所有的键输出:
127.0.0.1:6379> keys *
1) "python"
2) "java"
3) "hello"

2、键总数

dbsize

dbsize命令会返回当前数据库中键的总数。假如当前数据库有4个键,分别是hello、
java、python、mylist,所以dbsize的结果是4:
127.0.0.1:6379> dbsize
(integer) 4

dbsize命令在计算键总数时不会遍历所有键,而是直接获取Redis内置的键总数变量,所以
dbsize命令的时间复杂度是O(1)。而keys命令会遍历所有键,所以它的时间复杂
度是O(n),当Redis保存了大量键时,线上环境禁止使用。

3、检查键是否存在

exists key

如果键存在则返回1,不存在则返回0:
127.0.0.1:6379> exists java
(integer) 1
127.0.0.1:6379> exists not_exist_key
(integer) 0

4、删除键

del key [key ...]

del是一个通用命令,无论值是什么数据结构类型,del命令都可以将其删除,例如将字符串键java删除:
127.0.0.1:6379> del java
(integer) 1
127.0.0.1:6379> exists java
(integer) 0
返回结果为成功删除键的个数,假设删除一个不存在的键,就会返回0。

同时del命令可以支持删除多个键:
127.0.0.1:6379> set a 1
OK
127.0.0.1:6379> set b 2
OK
127.0.0.1:6379> set c 3
OK
127.0.0.1:6379> del a b c
(integer) 3

5、键过期

expire key seconds

Redis支持对键添加过期时间,当超过过期时间后,会自动删除键,例如为键hello设置10秒过期时间:
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> expire hello 10
(integer) 1

ttl命令会返回键的剩余过期时间,它有3种返回值:
A)大于等于0的整数:键剩余的过期时间。
B)-1:键没设置过期时间。
C)-2:键不存在

可以通过ttl命令观察键hello的剩余过期时间:
# 还剩 7 秒
127.0.0.1:6379> ttl hello
(integer) 7

# 还剩 1 秒
127.0.0.1:6379> ttl hello
(integer) 1

# 返回结果为 -2 ,说明键 hello 已经被删除
127.0.0.1:6379> ttl hello
(integer) -2
127.0.0.1:6379> get hello
(nil)

6、键的数据结构类型

type key

例如键a是字符串类型,返回结果为string;键mylist是列表类型:
127.0.0.1:6379> set a b
OK
127.0.0.1:6379> type a
string
127.0.0.1:6379> rpush mylist a b c d e f g
(integer) 7
127.0.0.1:6379> type mylist
list
键不存在,则返回none。

更多命令学习链接:http://www.runoob.com/redis/redis-keys.html

上一篇下一篇

猜你喜欢

热点阅读