与key相关的命令
# 展示当前数据库中所有的键
keys *
# 判断某个key是否存在
exists key
# 根据key移动该数据到其他的数据库中
move key dbName
# 为给定的key设置过期时间,单位为秒
expire key 10
# 查看还有多少秒过期,-1表示永不过期,-2表示已过期(从内存中移除)
ttl key
# 查看key是什么类型
type key
String类相关命令
# 设置一个键值对
set key value
# 批量设置值
mset key1 value1 key2 value2 key3 value3
# 根据key获取value
get key
# 批量获取值
mget key1 key2 key3
# 删除Key
del key
# 如果key不存在,执行set操作,如果key存在,将value追加到key原来的值得末尾
append key value
# 加减运算只允许数字
# 将Key对应的value值+1
incr key
# 将key对应的value值+10
incrby key 10
# 将key对应的value值-1
decr key
# 将key对应的value值-10
decrby key 10
# 获取字符串中从第几位开始到第几位结束的值,例如现在有一个key: 0123456
getrange key 0 -1
结果: 0123456
getrange key 0 1
结果:01
setrange key 0 xxx
结果:xxx3456
# 设置值,并添加过期时间(set with expire)
setex key second value
# 设置值,如果不存在(set if not exist)。如果该键值对已存在,不做任何修改
setnx key value
# 先get后set
getset key value
List类相关操作,list是一个链表结构,既可模拟队列结构,也可模拟栈结构
list结构可以用下图来表示

# 在链表头部(左边,left)依次添加值
lpush list 1 2 3 4 5
# 查询结果(从左到右)
lrange list 0 -1
结果:5 4 3 2 1
# 在链表尾部(右边,right)依次添加值
rpush list 1 2 3 4 5
lrange list 0 -1
结果: 1 2 3 4 5
# 从链表头部取值,取值后会将该值从链表中删除(左边,left)
lpop list
# 从链表尾部取值,取值后会将该值从链表中删除(右边,right)
rpop list
# 按照索引下标获取元素
lindex list 0 // 获取list第0位的值
# 查询list长度
llen list
# 从左到右删除2个3
lrem list 2 3
# 从右到左删除2个3
rrem list 2 3
# 截取指定范围的值后再赋值给key
ltrim key start end
例如现在有一个list: 0 1 2 3 4 5
ltrim list 0 2
结果: list: 0 1 2
# rpoplpush 源列表 目标列表 ,源列表尾部出栈,目标列表头部进栈
list1: 8 7 6 5 4
list2: 3 2 1
rpoplpush list1 list2
list1: 8 7 6 5
list2: 4 3 2 1
# 修改列表中索引位置的值
lset key index value
# 把java插入到x之前,查询顺序从头到尾
linsert list before x java
# 把java插入到x之后,查询顺序从头到尾
linsert list after x java
Set类别相关命令
# sadd,如果不存在该集合,创建id为set1的集合,如果已存在该集合,则在原集合上添加
sadd set1 1 2 3
# 显示set集合所有内容
smembers key
# 判断元素1是否存在于集合set1中
sismembers set1 1
# 获取集合set1中元素的个数
scard set1
# 删除集合set1中的1,如果元素1不存在,返回0
srem set1 1
# 返回集合set1中的1个随机元素
srandmember set1 1
# 随机取出集合set1中的一个值,并将其在集合中移除
spop set1
# 将集合set1中的元素1移动到集合set2中去
smove set1 set2 1
# 取交集,差集,并集
# 从set1集合中取出set2集合不包含的元素(差集)
sdiff set1 set2
# 取出set1与set2集合共同包含的元素(交集)
sinter set1 set2
# 取set1集合与set2集合的并集
sunion set1 set2
Hash类别(相当于JAVA中的HashMap<String, String>)相关命令
# 新增一个名为user1的Hash集合,集合里的内容为,id: 1, name: haha, sex man
hset user1 id 1 name haha sex man
# 获取Hash集合user1中的id,一次只能获取一个属性
hget user1 id
# 获取Hash集合user1中的id和name,一次能获取多个属性
hmget user1 id name
# 获取Hash集合user1中的所有属性
hgetall user1
# 删除hash集合user1中的多个属性
hdel user1 id name
# 查询hash集合user1中属性的数量
hlen user1
# 判断hash集合user1中是否存在属性name,返回值为1或0
hexists user1 name
# 返回hash集合user1中的所有属性的key
hkeys user1
# 返回hash集合user1中的所有属性的value
hvals user1
# 为Hash集合user1中的id属性执行+2操作
hincrby user1 id 2
# 为为Hash集合user1中的id属性执行+0.5操作
hincrbyfloat user1 id 0.5
# 为hash集合user1设置属性age: 20,如果age属性不存在,返回值为1或0
hsetnx user1 age 20
Zset类相关命令,默认排序为按分数从小到大排序
# 新增一个zset集合,集合中保存了几个学生的成绩,学生1为60分,学生2为70分
zadd students 60 student1 70 student2 80 student3
# 返回zset集合students中,从0(第一位)到-1(最后一位)的所有学生,按分数从小到大排序
zrange students 0 -1
# 返回回zset集合students中,从0(第一位)到-1(最后一位)的所有学生,按分数从大到小排序
zrevrange students 0 -1
# 返回zset集合students中,成绩为70<= x <= 80分的学生
zrangebyscore students 70 80
返回:
1) students2
2) students3
# 分页返回zset集合students中,成绩为70<= x <= 80分的学生
zrangebyscore students 70 80 limit 0 10
# 返回zset集合students中,成绩为70<= x <80分的学生,
zrangebyscore students 70 (80
# 返回zset集合students中,成绩为70<= x <= 80分的学生以及他们的分数
zrangebyscore students 70 80 withscores
返回:
1) students2
2) 70
3) students3
4) 80
# 倒叙返回zset集合students中,成绩为70<= x <= 80分的学生,按分数从大到小排序
zrevrangebyscore students 70 80
# 删除students集合中student3的记录,返回值为0或1
zrem students student3
# 返回students集合中元素的数量
zcard students
# 计算students集合中,60分到70之间的学生数量
zcount students 60 70
# 返回students集合中student1的排名,集合按分数从小到大排序。(排名第一位,返回值为0)
zrank students student1
# 返回students集合中student1的排名,集合按分数从大到小排序。
zrevrank students student1
# 获取students集合中,student1的分数
zscore students student1
网友评论