1、数据库级操作
select 1 # 切换数据库
flushdb # 清空当前数据库
flushall # 清空所有数据库
2、获取类型操作
type num # 获取指定key的数据类型
object encoding num # 获取指定key的编码类型
3、String类型操作
set name 123 # 新增/更新value(重新赋值)
get name # 取值
keys n* # 获取以n开头的所有key
keys * # 获取所有key,注意:当数据量大时,可能造成长时间阻塞。因为redis请求是单线程
dbsize # 统计当前数据库中key的数量
getrange name 0 1 # 获取key索引下标0-1的字符
strlen name # 统计字符串长度
append name NB # 向指定key的value追加字符串
exists name # 判断key是否存在,若存在返回1,否则返回0
setnx name pch # set if not exists 若不存在,则set值,否则不做任何操作
set k1 v1 ex 10 nx # 10s内不允许操作(再次赋值时,需格式一致;否则redis理解为创建一个新key)
mset age 18 hobby read # 批量set值
mget name age hobby # 批量get值
incr age # 对int类型的value加1,若类型不符合,提示错误(若key不存在,则创建为1-int)
incrby age 10 # 对int类型的value加指定值
decr age # 对int类型的value减1,若类型不符合,提示错误
decrby age 10 # 对int类型的value减指定值
incrbyfloat num 10 # 对float类型的value加指定值,若类型不符合,提示错误
incrbyfloat num -10 # 对float类型的value减指定值
rename name names # 修改key的名称
del names # 删除key
4、Hash类型操作
hset student:1 name 张三 age 18 address 北京 #设置多个值(hmset)
hget student:1 name #获取指定key、指定filed的value
hmget student:1 name age address #获取指定key、多个filed的value
hkeys student:1 #获取指定key所有的filed名称
hvals student:1 #获取指定key所有的filed的value
hgetall student:1 #获取指定key所有的filed名称及value
hdel student:1 address #删除指定key、指定filed
hlen student:1 #获取指定key中的键值对数量
del student:1 #删除指定key(包含其中所有的filed)
5、List类型操作
【存值/入栈(队)】
lpush k1 a #从列表左端存值
lpush k1 b c d e #从列表左端依次存值
rpush k1 f #从列表右端存值
rpush k1 g h #从列表右端依次存值
【取值】
lrange k1 0 4 #范围取值(索引0-4的值:"e" "d" "c" "b" "a")
lrange k1 0 -1 #取列表所有值("e" "d" "c" "b" "a" "f" "g" "h")
【删除/出栈(队)】
a、左出栈
lpop k1
lrange k1 0 -1 #出栈后,剩余列表为("d" "c" "b" "a" "f" "g" "h")
b、右出栈
rpop k1
lrange k1 0 -1 #出栈后,剩余列表为("d" "c" "b" "a" "f" "g")
c、阻塞左出栈
blpop k1 5 #左出栈,若无值,则阻塞5秒,5秒后仍然无值,则返回nil。
d、阻塞右出栈
brpop k1 5 #同上(b——block 阻止;阻塞);正常每次可以取到1个值
6、Set类型操作
【单集合命令】
sadd uid 1 2 3 4 5 #向集合中添加一个或多个成员
smembers uid #获取指定集合的所有成员
scard uid #获取指定集合的成员数量
srandmember uid 3 #随机获取指定集合指定个数的成员
spop uid 1 #随机弹出指定集合指定个数的成员
srem uid 2 3 #从指定集合中移除指定成员
sismember uid 1 #判断指定集合的指定成员是否存在
sadd k1 a b c
sadd k2 a b d e f
【集合之间命令:对上面两个集合进行差集、交集、并集】
#1、差集
sdiff k1 k2 #第一个集合与其他集合之间的差异:"c"
sdiff k2 k1 #结果集来自第一个集合:"f"、"d"、"e"
#2、交集
sinter k1 k2 #两个集合相同的元素
#3、并集
sunion k1 k2 #去除相同元素后,结果集元素为两个集合的合
7、Zset类型操作
【增】
zadd top 100 java 20 php 30 python 50 c++ #向有序集合添加多个元素
zadd top 40 c #向有序集合添加单个元素
【查】
zrange top 0 3 #获取下标0-3的元素(升序)
zrange top 0 3 withscores #获取下标0-3的元素及相应的分数(升序)
zrange top 0 -1 withscores #获取集合中所欲的元素及相应的分数(升序)
zrevrange top 0 -1 withscores #获取集合中所欲的元素及相应的分数(降序)
zrangebyscore top 20 30 #获取分值为20-30之间的元素
zscore top java #获取元素的分数
zrank top java #获取元素的下标(升序)
zrevrank top java #获取元素的下标(降序)
【统计】
zcard top #统计集合元素个数
zcount top 20 60 #统计分值为20-60之间的集合元素个数
【改】
zincrby top 20 pho #向元素增加指定分数,若元素不存在,则新增
zincrby top 20 php #若存在,则在原分数累加
【删】
zrem top c++ php #从集合中删除指定的元素
zremrangebyscore top 0 50 #从集合中删除指定分数区间的元素
zremrangebyrank top 0 1 #从集合中删除指定下标(0-1)的元素
zremrangebyrank top 0 -1 #从集合中删除所有元素