redis命令汇总

redis 操作

1.开启redis服务

redis-server

2.进入redis

  • 进入本地

    redis-cli
    
  • 进入远程

    redis-cli -h <ip地址> -p 6379
    redis-cli -h 127.0.0.1 -p 6379
    

退出

exit

3.redis数据库

Redis默认支持16个数据库,从0开始的递增数字,分别为0-15,每个数字代表一个数据库

Redis 中存储的值分为5种类型 set 类型 list类型 hash类型 集合(无序)类型 有序集合类型
以下代码皆以使用方法加例子表示。


1. 选择数据库

select <数据库号>
select 0      # 选择0号数据库

2.set(所存值只能为string类型)

添加键值对
# 增
set <键> <值>
set bar 2

# 查寻类型
type <键>
type bar
-- string

添加多个键值对
mset <键1> <值1> <键2> <值2> <键3 <值3>
查看
get <key>
get bar
查看多个
mget <key1> <key2> <key3>
查看所有键
keys *
通过辅助条件查询
keys bar[0-9]      # 查询bar开头后面一个数为0-9的键

在这里插入图片描述

删除
del <key>  # 可以同时删除多个键 返回值时键的个数
del bar bar1 bar2
条件删除

​ DEL命令的参数不支持通配符,但我们可以结合Linux的管道和xargs命令自己是删除所有符合规则的键。

​ 比如要删除所有以user开头的键,可以执行如下操作

redis-cli KEYS "user*" | xargs redis-cli DEL
判断键是否存在
exists <key>    # 存在返回1 否则返回0
设置过期时间
expire <key> <seconds>
expire bar 120
查看过期时间
ttl <key>   # 返回-1 表示永久存在  返回-2 表示已经过期
ttl bar
设置数据为永久
persist <key>
清空所有数据

​ Redis数据库之间并不是完全隔离的,比如FLUSH ALL 可以完全清空一个Redis实力中所有数据库中的数据

flush all
数据修改
set num 1
append num 2     # 为键 num 添加字符2

# 如果value值为数字 即val必须为数值类型的字符串
incr num	# 加一
decr num 	# 减一

# + 整数
incrby num 10  # 加10
# - 整数
decrby num 10  # 减10

3.list类型

​ 列表添加方式有两种, 一种为 栈(先进后出),一种为 队列(先进先出)

添加数据
# 栈
lpush <key> <list>	# 左边插入数据     # 返回列表当前数目
lpush mlist  3 4 5

# 队列
rpush <key> <list>  # 右边插入数据
rpush mlist 2 1

在这里插入图片描述

读取数据
# 指定范围读取
lrange <key> <index_start> <index_end>
lrange mlist 0 -1      # 读出mlist中所有
- "5"
- "4"
- "3"
- "2"
- "1"

# 指定下标读取
lindex <key> <index>
删除数据
# 左删   返回删除的值
lpop <key>
# 右删
rpop <key>

# 批量指定删除
lrem <key> <count> <value>
lrem myli 2 1	# 当count > 0 列表会从左边开始删除 count 个 值为 value 的元素
lrem myli -2 2	# 当 count < 0 列表会从右边开始删除 |count| 个 值为 value 的元素
lrem myli 0 4	# 当 count = 0 列表会删除 所有 值为 value 的元素

4. 哈希类型(hash)

​ redis 是采用字典结构以键值对的形式存储数据的,而散列类型(hash) 的简直也是一种字典结构,其存储了字段(filed) 和字段值的映射,但字段值只能是字符串,不支持其他数据类型,换句话说,散列数据类型不能嵌套其他的数据类型。一个散列类型的键可以包含至多232-1个字段。
在这里插入图片描述

添加数据
# 添加一个
hset <field> <key> <val>
hset bd name xiaoming

# 添加多个
hmset <field> <key1> <val1> <key2> <val2>
hmset bd age 12 _type people
查看数据
# 查看一个
hget <field> <key>
hget bd name

# 查看多个
hmget <field> <key1> <key2>
hmget bd name age
获取哈希类型中的所有键
hkeys <field>
hkeys bd
获取哈希类型中的所有值
hvals <field>
hvals bd
获取哈希类型所有键值对
hgetall <field>
hgetall bd
获取键值对个数
hlen  #获取键值对个数
判断哈希类型的值是否存在
hexists <field> <key>     # 有就返回1 无就返回0
hexists bd age
- 1
修改数据
# 增加数字
hincrby <field> <key> <val>
hincrby bd age 2

# 减则增加负数即可
删除哈希类型里面键
hdel <field> <key>
hdel bd age
直接删除哈希键
del <field>

5. 集合(无序)

添加数据
sadd <key> <val>
sadd s1 1 2 3 a b c
查询集合中所有数据
smembers <key>
smembers s1
删除
srem <key> <val>    # 删除指定元素 , 返回剩余元素
srem s1 a

spop <key> <count>  # 删除随机 count 个元素, 返回剩余元素
spop s1 2
随机获取数据
# 随机获取count 个元素, 返回count个不重复数,count为为负数则可能出现重复数据
srandmember <key> <count>
srandmember s1 4
获取元素个数
scard <key>
scard s1
交集、并集、差集
#交集
sinter  集合1  集合2  集合3.
sinterstore 新集合  集合1  集合2  集合3.  #可以保存到新集合内

#并集
sunion  集合1  集合2  集合3.
sunionstore  新集合  集合1  集合2  集合3

#差集
sdiff  集合1  集合2  集合3.
sdiffstore  新集合  集合1  集合2  集合3

6.有序集合

方法汇总
# 有序集合
# 添加
zadd  键   分数  元素  分数  元素  分数 元素
zadd math 100 xiaoming 20 xiaohong 35 xiaoli

# 查看元素
zscore <field> <key>
-- <score>

# 查看元素个数
zcard 键

# 查看一个field下范围内的key
zrange math 0 -1

# 查看所有的key和 val (从小到大)
zrange math 0 -1 withscores 

# 查看所有的key和 val (从大到小)
zrevrange <field> 0 -1 withscores

# 移除指定元素
zrem math  元素  

# 根据分数范围获取元素  20-100
                    >=20  <= 100
zrangebyscore   math  20 100	

# 大于20分 -100内  (不包含20)
                     >20   <=100
zrangebyscore   math  (20 100	

# 大于20分 -100以内  (不包含20,不包含100)
                       >20 <100
zrangebyscore   math  (20100		


# 根据分数统计元素个数
zcount key 20  100

# 修改元素
zincrby key  20 moran # 添加分数
zincrby key  -20 moran # 减少分数

# 根据排名删除                       
zremrangebyrank math 0 1 # 删除排名0到1 的元素
# 根据分数删除   
zremrangebyscore math (20 100  #删除大于20-100

# 有序集合求交集    元素相同  分数相加
zinterstore   新集合名   2(表示2集合的交集)  集合1  集合2
zunionstore   新集合名   2(表示2集合的并集)  集合1  集合2
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值