keys命令可用于查看所有键,语法如下
pattern用于匹配key,其中*表示任意个任意字符
keys pattern
键总数
dbsize可用于查看键的总数,语法如下
dbsize
判断键是否存在
exists命令可用于判断一个键是否存在,语法如下
exists key
删除键
del可用于删除指定键,语法如下
返回值为删除键的个数,若删除一个不存在的键,则返回0。
del key [key ...]
查询键的剩余过期时间
ttl key
数据库管理命令
Redis默认有编号为0~15的16个逻辑数据库,每个数据库之间的数据是相互独立的,所有连接默认使用的都是0号数据库。
切换数据库
select命令可用于切换数据库,语法如下
select index
清空数据库
flushdb命令会清空当前所选用的数据库,flushall命令会清空0~15号所有的数据库。
Redis中的string类型保存的是字节序列(Sequence of bytes),因此任意类型的数据,只要经过序列化之后都可以保存到Redis的string类型中,包括文本、数字甚至是一个对象
set
set命令用于添加string类型的键值对,具体语法如下
SET key value [NX|XX] [EX seconds|PX milliseconds]
各选项含义如下
get
get命令用于获取某个string类型的键对应的值,具体语法如下
GET key
incr
incr命令用于对数值做自增操作,具体语法如下
INCR key
decr
decr命令用于对数值做自减操作,具体语法如下
若key对应的value是整数,则返回自减后的结果,若不是整数则报错,若key不存在则创建并返回-1。
应用场景
string类型常用于缓存、计数器等场景。
DECR key
添加元素
向列表中添加元素的命令有lpush、rpush 、linsert,各命令的功能与用法如下
lpush
该命令用于向list左侧添加元素,语法如下
lpush key element [element ...]
示例
lpush l1 a b c
rpush
该命令用于向list右侧添加元素,语法如下
rpush key element [element ...]
linsert
该命令用于向list指定位置添加元素,语法如下
linsert key before|after pivot element
示例
linsert l1 after b new
查询元素
查询list元素的命令有lindex
和lrange
,各命令的功能与用法如下
lindex
lindex key index
lrange
该命令用于获取指定范围内的元素列表,语法如下
lrange key start stop
示例
获取list全部元素,命令如下
lrange l1 0 -1
素
删除list元素的命令有lpop、rpop、lrem,各命令的功能与用法如下
lpop
该命令用于移除并返回list左侧元素,语法如下
lpop key [count]
rpop
该命令用于移除并返回list右侧的元素,语法如下
rpop key [count]
lrem
该命令用于移除list中的指定元素,语法如下
lrem key count element
count参数表示要移除element元素的个数(list中可以存在多个相同的元素),count的用法
修改元素
lset命令可用于修改指定索引位置的元素,语法如
lset key index element
llen命令可用于查看list长度,语法如下
llen key
add
该命令用于向set中添加元素,语法如下
smembers key
srem key member [member ...]
spop key [count]
srandmember key [count]
scard key
sismember key element
sismember key element
``
sinter
该命令用于计算多个集合的交集,语法如下
sinter key [key ...]
sunion
该命令用于计算多个集合的并集,语法如下
sunion key [key ...]
sdiff
该命令用于计算多个集合的差集,语法如下
sdiff key [key ...]
set可用于计算共同关注好友,随机抽奖系统等等。
hash类型类似于Java语言中的HashMap,可用于存储键值对。
hset
该命令用于向hash中增加键值对,语法如下
hset
该命令用于向hash中增加键值对,语法如下
hset key field value [field value ...]
hget
该命令用于获取hash中某个键对应的值,语法如下
hget key field
hdel
该命令用于删除hash中的指定的键值对,语法如下
hdel key field [field ...]
hlen
该命令用于查询hash中的键值对个数,语法如下
hlen key
hexists
该命令用于判断hash中的某个键是否存在,语法如下
hexists key field
hkeys
该命令用于返回hash中所有的键,语法如下
hkeys key
hvals
该命令用于返回hash中所有的值,语法如下
hvals key
hgetall
该命令用于返回hash中所有的键与值,语法如下
hgetall key
hash类型可用于缓存对象等。
zset(sorted set)被称为有序集合,同set相似,zset中也不会包含相同元素,但不同的是,zset中的元素是有序的。并且zset中的元素并非像list一样按照元素的插入顺序排序,而是按照每个元素的分数(score)排序。
zadd
该命令用于向zset中添加元素,语法如下
ZADD key [NX|XX] score member
zcard
该命令用于计算zset中的元素个数,语法如下
zcard key
zscore
改名用于查看某个元素的分数,语法如下
zscore key member
zrank/zrevrank key member
**说明:**名次从0开始。
zrem key member [member ...]
zincrby key increment member
zrange key start stop [byscore] [rev] [limit offset count] [withscores]
说明:
start~stop
表示的是名次区间,且该区间为闭区间。名次从0开始,且可为负数,-1表示倒数第一,-2表示倒数第二,以此类推。start~stop
表示的就是分数区间,该区间默认仍为闭区间。在该模式下,可以在start
或stop
前增加(
来表示开区间,例如(1 (5
,表示的就是(1,5)
这个开区间。除此之外,还可以使用-inf
和+inf
表示负无穷和正无穷。