Redis常用的命令(附带全套命令)

一. 常用命令

通用命令(适合所有数据类型):

  • keys * #查看所有的key
  • type name #查看name的数据类型
  • del name #删除key为name的数据

常用的命令(赋值和查看):

string的赋值和查看:

赋值:
set key1 v1
查看:
get key1


list的赋值和查看:

赋值:
LPUSH list one # 将一个值或者多个值,插入到列表头部(左)
RPUSH list righr # 将一个值或者多个值,插入到列表尾部(右)
查看:
LRANGE list 0 -1


set的赋值和查看:

赋值:
SADD set joson
查看:
SMEMBERS set


hash的赋值和查看:

赋值:
hset myhash name joson
查看:
hget myhash name
HGETALL myhash # 获取全部的数据


zset的赋值和查看:

赋值:
ZADD user 1 tom
查看:
ZRANGE user 0 -1
ZRANGEBYSCORE users -inf +inf withscores # 显示全部的用户并且带id

二. 下面是全套的方法

1.string字符串

127.0.0.1:6379> set key1 v1 # 设置值
OK
127.0.0.1:6379> get key1 # 获取值
"v1"
127.0.0.1:6379> keys * # 获取全部的值
1) "key1"
127.0.0.1:6379> exists key1 # 判断某个key是否存在
(integer) 1
127.0.0.1:6379> APPEND key1 "hello" # 追加字符串,如果当前key不存在,就相当于set key
(integer) 7
127.0.0.1:6379> get key1
"v1hello"
127.0.0.1:6379> STRLEN key1 # 获取字符串的长度
(integer) 7
127.0.0.1:6379> append key1 ",superclass"
(integer) 20
127.0.0.1:6379> STRLEN key1
(integer) 20
127.0.0.1:6379> get key1
"v1hello,superclass"
127.0.0.1:6379> set views 0 # 初始化浏览为0
OK
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incr views # 自增1
(integer) 1
127.0.0.1:6379> incr views
(integer) 2
127.0.0.1:6379> get views
"2"
127.0.0.1:6379> decr views # 自减1
(integer) 1
127.0.0.1:6379> decr views
(integer) 0
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> incrby view 10 # 可以设置步长,指定增量
(integer) 10
127.0.0.1:6379> get view
"10"
127.0.0.1:6379> get views
"0"
127.0.0.1:6379> decrby view 5
(integer) 5
127.0.0.1:6379> set key1 joson,hello # 设置key1的值
OK
127.0.0.1:6379> get key1
"joson,hello"
127.0.0.1:6379> GETRANGE key1 0 3 # 截取字符串【03"joso"
127.0.0.1:6379> get key1
"joson,hello"
127.0.0.1:6379> GETRANGE key1 0 -1 # 获取全部字符串和get key是一样的
"joson,hello"
# 替换
127.0.0.1:6379> set key2 abcd
OK
127.0.0.1:6379> get key2
"abcd"
127.0.0.1:6379> SETRANGE key2 1 xx # 替换指定位置开始的字符串!
(integer) 4
127.0.0.1:6379> get key2
"axxd"
127.0.0.1:6379> setex key3 30 "hello" # 设置key3的值为hello,30秒后过期
OK
127.0.0.1:6379> ttl key3
(integer) 26
127.0.0.1:6379> setnx mykey redis # 如果mykey不存在,则创建mykey
(integer) 1
127.0.0.1:6379> keys *
1) "key2"
2) "key1"
3) "mykey"
127.0.0.1:6379> ttl kye3
(integer) -2
127.0.0.1:6379> setnx mykey MongoDB # 如果mykey存在,创建失败!
(integer) 0
127.0.0.1:6379> get mykey
"redis"
127.0.0.1:6379> MSET k1 v1 k2 v2 k3 v3 # 同时设置多个值
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"
127.0.0.1:6379> MGET k1 k2 k3 # 同时获取多个值
1) "v1"
2) "v2"
3) "v3"
127.0.0.1:6379> MSETNX k1 v1 k4 v4 # msetnx 是一个原子性操作,要么一起成功,要么一
起失败
(integer) 0
127.0.0.1:6379> get k4
(nil)
# 对象
127.0.0.1:6379> SET user:1 {name:joson,age:3} #设置一个user:1对象 值为json字符
OK
127.0.0.1:6379> mset user:1:name joson user:1:age 2
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "joson"
2) "2"
127.0.0.1:6379> keys *
1) "user:1:age"
2) "user:1:name"
3) "k1"
4) "user:1"
5) "k3"
6) "k2"
127.0.0.1:6379> get user:1
"{name:joson,age:3}"
# getset 先get然后再set
127.0.0.1:6379> GETSET db redis # 如果不存在值,则返回nil
(nil)
127.0.0.1:6379> get db
"redis"
127.0.0.1:6379> GETSET db mongodb # 如果存在值,获取原来的值,并设置新的值
"redis"
127.0.0.1:6379> get db
"mongodb"

2.list

127.0.0.1:6379> LPUSH list one # 将一个值或者多个值,插入到列表头部(左)
(integer) 1
127.0.0.1:6379> LPUSH list two
(integer) 2
127.0.0.1:6379> LPUSH list three
(integer) 3
127.0.0.1:6379> LRANGE list 0 -1 # 获取list的值
1) "three"
2) "two"
3) "one"
127.0.0.1:6379> LRANGE list 0 1 # 通过区间 获取具体的值
1) "three"
2) "two"
127.0.0.1:6379> RPUSH list righr # 将一个值或者多个值,插入到列表位(右)
(integer) 4
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "two"
3) "one"
4) "righr"
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "two"
3) "one"
4) "righr"
127.0.0.1:6379> LPOP list # 移除list的第一个元素
"three"
127.0.0.1:6379> RPOP list # 移除list的最后一个元素
"righr"
127.0.0.1:6379> LRANGE list 0 -1
1) "two"
2) "one
127.0.0.1:6379> LRANGE list 0 -1
1) "two"
2) "one"
127.0.0.1:6379> LINDEX list 1 # 通过下标获取list中的某一个值
"one"
127.0.0.1:6379> LINDEX list 0
"two"
# LLEN
127.0.0.1:6379> lpush list one
(integer) 3
127.0.0.1:6379> lpush list two
(integer) 4
127.0.0.1:6379> lpush list three
(integer) 5
127.0.0.1:6379> LLEN list # 获取列表的长度
(integer) 5
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "two"
3) "one"
4) "two"
5) "one"
127.0.0.1:6379> LREM list 1 one # 移除list集合中指定个数的value,精准匹配
(integer) 1
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "two"
3) "two"
4) "one"
127.0.0.1:6379> LREM list 1 two
(integer) 1
127.0.0.1:6379> LRANGE list 0 -1
1) "three"
2) "two"
3) "one"
# TRIM 修剪 LIST 截断
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> rpush list hello
(integer) 1
127.0.0.1:6379> rpush list hello1
(integer) 2
127.0.0.1:6379> rpush list hello2
(integer) 3
127.0.0.1:6379> rpush list hello3
(integer) 4
127.0.0.1:6379> LTRIM list 1 2 # 通过下标截取指定的长度
OK
127.0.0.1:6379> LRANGE list 0 -1
1) "hello1"
2) "hello2"
# RPOPLPUSH 移除列表的最后一个元素,将他移动到新的列表中
127.0.0.1:6379> rpush list hello
(integer) 1
127.0.0.1:6379> rpush list hello1
(integer) 2
127.0.0.1:6379> rpush list hello2
(integer) 3
127.0.0.1:6379> RPOPLPUSH list mylist # 移除列表的最后一个元素,将他移动到新的列表中!
"hello2"
127.0.0.1:6379> LRANGE list 0 -1 # 查看原来的列表
1) "hello"
2) "hello1"
127.0.0.1:6379> LRANGE mylist 0 -1 # 查看目标列表中,确实存在改值!
1) "hello2"

# lset 将列表中指定下标的值替换为另外一值,更新操作
127.0.0.1:6379> EXISTS list # 判断这个列表是否存在
(integer) 0
127.0.0.1:6379> LSET list 0 item # 如果不存在列表,我们去更新就会报错
(error) ERR no such key
127.0.0.1:6379> LPUSH list joson1
(integer) 1
127.0.0.1:6379> LRANGE list 0 0
1) "joson1"
127.0.0.1:6379> LSET list 0 item # 如果存在,更新当前下标的值
OK
127.0.0.1:6379> LRANGE list 0 0
1) "item"
127.0.0.1:6379> lset list 1 other # 如果不存在,就会报错!
(error) ERR index out of range

# linsert 将某个具体的值的value插入到列中某个元素的前面或者后面
127.0.0.1:6379> RPUSH list joson1
(integer) 1
127.0.0.1:6379> RPUSH list joson2
(integer) 2
127.0.0.1:6379> LINSERT list before joson2 joson3 # 将joson3插入到joson2之前
(integer) 3
127.0.0.1:6379> LRANGE list 0 -1
1) "joson1"
2) "joson3"
3) "joson2"
127.0.0.1:6379> LINSERT list after joson2 joson4 # 将joson4插入到joson2之后
(integer) 4
127.0.0.1:6379> LRANGE list 0 -1
1) "joson1"
2) "joson3"
3) "joson2"
4) "joson4"

3.set

127.0.0.1:6379> clear
127.0.0.1:6379> SADD set joson # set集合中添加元素
(integer) 1
127.0.0.1:6379> SADD set joson1
(integer) 1
127.0.0.1:6379> SADD set joson2
(integer) 1
127.0.0.1:6379> SMEMBERS set # 查看指定set的所有值
1) "joson"
2) "joson2"
3) "joson1"
127.0.0.1:6379> SISMEMBER set joson # 判断某一个值是否在set集合中
(integer) 1
127.0.0.1:6379> SISMEMBER set joson4
(integer) 0
127.0.0.1:6379> SCARD set # 获取set集合的元素个数
(integer) 3

127.0.0.1:6379> SREM set joson # 移除set集合中的指定元素
(integer) 1
127.0.0.1:6379> SCARD set
(integer) 2
127.0.0.1:6379> SMEMBERS set
1) "joson2"
2) "joson1"

127.0.0.1:6379> SMEMBERS set
1) "joson2"
2) "joson1"
127.0.0.1:6379> SRANDMEMBER set # 随机抽选出一个元素
"joson1"
127.0.0.1:6379> SRANDMEMBER set
"joson1"
127.0.0.1:6379> SRANDMEMBER set
"joson1"
127.0.0.1:6379> SRANDMEMBER set
"joson2"
127.0.0.1:6379> SRANDMEMBER set 2 # 随机抽选出两个元素
1) "joson2"
2) "joson1"
127.0.0.1:6379> SMEMBERS set
1) "joson2"
2) "joson1"
127.0.0.1:6379> SPOP set # 随机删除set集合中的元素
"joson1"
127.0.0.1:6379> SMEMBERS set
1) "joson2"

127.0.0.1:6379> SADD set joson1
(integer) 1
127.0.0.1:6379> SMEMBERS set
1) "joson2"
2) "joson1"
127.0.0.1:6379> SADD set joson2 # set集合中不能添加重复元素
(integer) 0
127.0.0.1:6379> SADD set joson3
(integer) 1
127.0.0.1:6379> SMOVE set myset joson2 # 将set中的某一个元素移动到另一个set集合中
(integer) 1
127.0.0.1:6379> SMEMBERS set
1) "joson3"
2) "joson1"
127.0.0.1:6379> SMEMBERS myset
1) "joson2"

# - 差集
# - 交集
# - 并集
127.0.0.1:6379> SDIFF set myset # 差集
1) "joson1"
2) "joson3"
127.0.0.1:6379> SINTER set myset # 交集
(empty list or set)
127.0.0.1:6379> SUNION set myset # 并集
1) "joson2"
2) "joson1"
3) "joson3"

4.hash

127.0.0.1:6379> hset myhash name joson # set一个具体的key-value
(integer) 1
127.0.0.1:6379> hget myhash name # 获取一个字段值
"joson"
127.0.0.1:6379> HMSET myhash name joson name1 joson1 name2 joson2 # set多个keyvalue
OK
127.0.0.1:6379> HMGET myhash name name1 name2 # 获取多个字段值
1) "joson"
2) "joson1"
3) "joson2"
127.0.0.1:6379> HGETALL myhash # 获取全部的数据
1) "name"
2) "joson"
3) "name1"
4) "joson1"
5) "name2"
6) "joson2"
127.0.0.1:6379> HDEL myhash name1 # 删除指定的元素
(integer) 1
127.0.0.1:6379> HGETALL myhash
1) "name"
2) "joson"
3) "name2"
4) "joson2"
127.0.0.1:6379> HLEN myhash # 获取hash表的字段数量
(integer) 2
127.0.0.1:6379> HEXISTS myhash name # 判断hash表中指定字段是否存在!
(integer) 1
127.0.0.1:6379> HEXISTS myhash name5
(integer) 0
127.0.0.1:6379> HKEYS myhash # 只获得所有的key
1) "name"
2) "name2"
127.0.0.1:6379> HVALS myhash # 只获得所有的value
1) "joson"
2) "joson2"

127.0.0.1:6379> HSET myhash name3 5
(integer) 1
127.0.0.1:6379> HGETALL myhash
1) "name"
2) "joson"
3) "name2"
4) "joson2"
5) "name3"
6) "5"
127.0.0.1:6379> HINCRBY myhash name3 1 # 指定增量
(integer) 6
127.0.0.1:6379> HGETALL myhash
1) "name"
2) "joson"
3) "name2"
4) "joson2"
5) "name3"
6) "6"
127.0.0.1:6379> HINCRBY myhash name3 -1
(integer) 5
127.0.0.1:6379> HGETALL myhash
1) "name"
2) "joson"
3) "name2"
4) "joson2"
5) "name3"
6) "5"
127.0.0.1:6379> HSETNX myhash name4 hello # 如果不存在,则可以设置
(integer) 1
127.0.0.1:6379> HSETNX myhash name4 hello1 # 如果存在,不能设置
(integer) 0

5.Zset 有序集合

127.0.0.1:6379> ZADD set 1 one # 添加一个值
(integer) 1
127.0.0.1:6379> ZADD set 2 two 3 three # 添加多个值
(integer) 2
127.0.0.1:6379> ZRANGE set 0 -1
1) "one"
2) "two"
3) "three"

# 实现排序
127.0.0.1:6379> zadd users 1 joson 2 joson2
(integer) 2
127.0.0.1:6379> ZADD users 3 joson3
(integer) 1
127.0.0.1:6379> ZRANGEBYSCORE users -inf +inf # 从小到大排序
1) "joson"
2) "joson2"
3) "joson3"
127.0.0.1:6379> ZREVRANGE users 0 -1 # 从大到小排序
1) "joson3"
2) "joson2"
3) "joson"
127.0.0.1:6379> ZRANGEBYSCORE users -inf +inf withscores # 显示全部的用户并且带id
1) "joson"
2) "1"
3) "joson2"
4) "2"
5) "joson3"
6) "3"
127.0.0.1:6379> ZRANGEBYSCORE users -inf 2 withscores #显示id小于2得到用户,升序排
序 1)
"joson"
2) "1"
3) "joson2"
4) "2"

# 移除rem中的元素
127.0.0.1:6379> ZRANGE users 0 -1 # 获取所有的员工
1) "joson"
2) "joson2"
3) "joson3"
127.0.0.1:6379> ZREM users joson2 # 移除指定的元素
(integer) 1
127.0.0.1:6379> ZRANGE users 0 -1
1) "joson"
2) "joson3"
127.0.0.1:6379> ZCARD users # 获取集合中的元素个数
(integer) 2
127.0.0.1:6379> ZADD users 4 joson4
(integer) 1
127.0.0.1:6379> ZCOUNT users 1 3 # 获取指定区间的成员数量
(integer) 2
127.0.0.1:6379> ZCOUNT users 1 2
(integer) 1
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值