redis常用命令

文章目录


前言

redis版本7.0.5
reids安装案例
redis中文网命令参考
redis官方命令参考
redis在线测试


一、常用命令

1.服务启动和连接

1.1启动服务端

redis-server

1.2启动服务端

redis-cli

1.3客户端ping测试和服务端连接

返回PONG,连接正常

ping

1.4清屏

clear

1.5获取配置参数

config get port

2.数据库

2.1选择数据库

select 0

2.2当前数据库key数量

dbsize

2.3清空数据库

flushdb

3.key

3.1查看所有key

redis的key要保证唯一

keys *

3.2添加key值

set user zhangjg

ex到期时间,单位秒 不设置默认-1,永久有效

set user zhangjg ex 3

3.3获取key值

get user

3.4查询key是否存在

exists user

3.5获取key存储类型

type user

3.6删除key

del user

3.7设置key到期时间(单位:秒)

set user zhangjg
expire user 3

二合一

set user zhangjg ex 3
setex user 3 zhangjg

3.8查看key有效的秒数

-2代表key已过期

ttl user

3.9添加多个key值

mset a 1 b 2 c 3

3.10获取多个key值

mget a b c

3.11设置分布式锁

setnx user zhangjg

3.12删除分布式锁(释放锁)

del user

3.13设置分布式锁过期时间

set user zhangjg nx ex 10

3.14批量删除

在服务器上执行,pass是密码,1选择数据库,keys*匹配要删除的key

redis-cli -a pass -n 1 keys "keys*"|xargs redis-cli -a pass -n 1 del

4.Transactions(事务)

4.1开启事务

multi后续执行的命令会放到QUEUED中,直到遇到exec或者discard事务才会结束

multi

4.2执行事务

执行QUEUED中的命令

exec

4.3丢弃事务

QUEUED中的命令将不会执行,事务结束

discard

4.4监听key(乐观锁)

左客户端获取到锁先执行成功,右客户端获取锁时发现值已经改变,执行失败。

watch user

在这里插入图片描述

4.5解除监听key

watch和unwatch要在事务开启之前执行

unwatch

5.acl

6.0之后的版本可以使用

5.1查看用户列表

#全部用户
acl users
#更多信息
acl list

包含用户启用、是否需要密码、权限类型
在这里插入图片描述

5.2添加用户

acl setuser zhangjg

带密码,带权限

#生成密码
acl genpass
#添加用户(~*:可以获取所有的key;&*:可以访问所有的通道;+@all:可以执行所有命令)
acl setuser zhangjg on >21797d7480c1270b848a1524128671b31dcad0725762cf41cc81c21e15fa35b2  ~* &* +@all

更多权限规则参考

5.3查看用户

acl getuser zhangjg

5.4切换用户

auth zhangjg 21797d7480c1270b848a1524128671b31dcad0725762cf41cc81c21e15fa35b2

5.5删除用户

acl deluser zhangjg

5.6查看当前用户

acl whoami

二、常用数据类型

官方文档

1.string(字符串)

1.1添加值

set user zhangjg

key存在时,不再添加

setnx user zhangjunguo

1.2获取值

get user

设置新值,返回结果为之前的旧值

set age 20
getset age 21
get age

1.3获取值长度

strlen user

1.4自增(incr)

默认自增1

set age 0
incr age
get age

自定义自增值

incrby age 2

1.5自减(decr)

默认自减1

decr age
get age

自定义自减值

decrby age 2

1.6追加值(append)

append a 0

1.7截取字符串

类似于substr,包含尾部

substr user 0 4
getrange user 0 4

1.7替换字符串

类似于replace,从下标开始处替换

set a 101010
setrange a 2 **
get a

注意:当字符串长度小于下标值的时候,该命令会进行补0的操作

set a 101010
setrange a 10 **
get a

2.list(列表)

2.1入队

lpush l1 a1 b1 c1
rpush r1 a1 b1 c1

2.2获取指定范围元素

-1代表列表的最后一个元素

lrange l1 0 -1
lrange r1 0 -1

2.3获取列表元素数量

llen l1

2.4出队

出队的元素在列表中就移除了,不加数量默认取出一个

lpop l1
rpop r1

根据count取出多个值

lpop l1 3
rpop r1 3

2.5索引

通过索引获取元素

lindex l1 0

通过索引替换当前元素值

lset l1 0 d11

2.6删除元素

0的位置代表要删除的数量,0表示删除所有值匹配的元素

lrem l1 0 d11

2.7插入元素

在元素之前或之后插入元素

lpush l1 a1 b1
linsert l1 before b1 b1before
linsert l1 after b1 b1after
lrange l1 0 -1

3.set(集合)

3.1插入元素

sadd s1 sss ssr

3.2获取元素(全部)

smembers s1

3.3获取元素数量

scard s1

3.4值是否存在集合中

1:存在,0:不存在

sismember s1 sss

3.5元素删除

1:成功,0:失败

srem s1 sss

3.6差集

a1有的,a2没有

sadd s1 a1 b1 c1
sadd s2 c1
sdiff s1 s2

将差集结果存到目标集合中

sdiffstore s1diffs2 s1 s2
smembers s1diffs2

3.7交集

a1有的,a2也有的

sinter s1 s2

将交集结果存到目标集合中

sinterstore s1sinters2 s1 s2
smembers s1sinters2

3.8并集

a1有的和a2有的加一块

sadd s2 d1
sunion s1 s2

将交集结果存到目标集合中

sunionstore s1sunions2 s1 s2
smembers s1sunions2

3.9删除并获取元素

sadd s1 a1 b1 c1
spop s1

取出给定数量的元素

spop s1 3

4.hash(哈希)

特别适合存储对象

4.1添加元素

设置单个属性

hset user:1000 name "root"

设置多个属性

hmset user:1001 id "1001" name "zhangjg" email "zhangjg@qq.com"

当field不存在时,新增键值对

hsetnx user:1001 id 1002

4.2获取元素

4.2.1获取单个属性
hget user:1000 name
4.2.2获取多个属性
hmget user:1001 id  name email
4.2.3获取所有field
hkeys user:1001
4.2.4获取所有value
hvals user:1001
4.2.5获取整个对象的全部键值对
hgetall user:1001

4.3判断field是否已经存在

1:存在,0:不存在

hexists user:1001 id

4.4获取field数量

hlen user:1001

4.5获取value长度

hstrlen user:1001 name

4.6自增或自减

hincrby user:1001 id 2
hincrby user:1001 id -2

4.7遍历所有键值对

hscan user:1001 0

4.8删除field

hdel user:1001 address

5.Sorted Sets(有序集合)

5.1添加元素

zadd lan 1 c

添加多个元素

zadd lan 1 c 5 c++  20 c# 30 java 55 php 80 python

5.2获取元素(withscores分数)

根据元素,获取分数

zscore lan python

从小到大,从大到小(查看所有元素和分数信息)

zrange lan 0 -1 withscores
zrevrange lan 0 -1 withscores

取出最小值,取出多次最小值

zpopmin lan
zpopmin lan 3

取出最大值,取出多次最大值

zpopmax lan
zpopmax lan 3

5.3删除元素

删除单个元素,删除多个元素

zrem lan c++
zrem lan c++ php

根据分数删除范围内元素(含头,含尾),根据索引删除范围内元素(含头,含尾)

zremrangebyscore lan 3 20
zremrangebyrank lan 0 1

5.4获取元素数量

zcard lan

5.5获取分数范围内元素个数

zcount lan 1 20

5.6分数自增和自减

zincrby lan 2 c
zincrby lan -2 c

5.7元素在集合中的索引

zrank lan c++

5.8字典顺序排序(分数相同)

正序:以ASCII字符集的顺序进行排列(a-z,A-Z)
-最小值,+最大值

zadd zset 0 a 0 b 0 abc 0 e 0 d 0 z
zrangebylex zset - +

根据[min [max元素获取范围数据(含头,含尾)

zrangebylex zset [a [b

根据[min (max元素获取范围数据(含头,不含尾)

zrangebylex zset [a (b

limit:分页(起始位置,元素数量)

zrangebylex zset - +  limit 2 2

5.9字典顺序排序(分数相同)

倒序:以ASCII字符集的顺序进行排列(z-a,Z-A)
-最小值,+最大值

zadd zset 0 a 0 b 0 abc 0 e 0 d 0 z
zrevrangebylex zset + -

根据[max [min元素获取范围数据(含头,含尾)

zrevrangebylex zset [b [a

根据[max (min元素获取范围数据(不含头,含尾)

zrevrangebylex zset (b [a

limit:分页(起始位置,元素数量)

zrevrangebylex zset + - limit 2 2

5.10字典顺序删除元素(分数相同)

删除z开头的元素

zremrangebylex zset [z +

删除a-d中间的元素(含头,包含尾d,不包含dd这样的元素排序在d之后,所以d后面有内容的元素是不在删除范围之内的)

zremrangebylex zset [a [d

总结

redis命令参考里面描述的很详细。
在这里插入图片描述

在这里插入图片描述
redis中文网翻译过来和官方如出一辙,向前辈致敬。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值