redis版本7.0.5
reids安装案例
redis中文网命令参考
redis官方命令参考
redis在线测试
redis-server
redis-cli
返回PONG,连接正常
ping
clear
config get port
select 0
dbsize
flushdb
redis的key要保证唯一
keys *
set user zhangjg
ex到期时间,单位秒
不设置默认-1,永久有效
set user zhangjg ex 3
get user
exists user
type user
del user
set user zhangjg
expire user 3
二合一
set user zhangjg ex 3
setex user 3 zhangjg
-2代表key已过期
ttl user
mset a 1 b 2 c 3
mget a b c
setnx user zhangjg
del user
set user zhangjg nx ex 10
在服务器上执行,pass是密码,1选择数据库,keys*匹配要删除的key
redis-cli -a pass -n 1 keys "keys*"|xargs redis-cli -a pass -n 1 del
multi后续执行的命令会放到QUEUED中,直到遇到exec或者discard事务才会结束
multi
执行QUEUED中的命令
exec
QUEUED中的命令将不会执行,事务结束
discard
左客户端获取到锁先执行成功,右客户端获取锁时发现值已经改变,执行失败。
watch user
watch和unwatch要在事务开启之前执行
unwatch
6.0之后的版本可以使用
#全部用户
acl users
#更多信息
acl list
acl setuser zhangjg
带密码,带权限
#生成密码
acl genpass
#添加用户(~*:可以获取所有的key;&*:可以访问所有的通道;+@all:可以执行所有命令)
acl setuser zhangjg on >21797d7480c1270b848a1524128671b31dcad0725762cf41cc81c21e15fa35b2 ~* &* +@all
更多权限规则参考
acl getuser zhangjg
auth zhangjg 21797d7480c1270b848a1524128671b31dcad0725762cf41cc81c21e15fa35b2
acl deluser zhangjg
acl whoami
官方文档
set user zhangjg
key存在时,不再添加
setnx user zhangjunguo
get user
设置新值,返回结果为之前的旧值
set age 20
getset age 21
get age
strlen user
默认自增1
set age 0
incr age
get age
自定义自增值
incrby age 2
默认自减1
decr age
get age
自定义自减值
decrby age 2
append a 0
类似于substr,包含尾部
substr user 0 4
getrange user 0 4
类似于replace,从下标开始处替换
set a 101010
setrange a 2 **
get a
注意:当字符串长度小于下标值的时候,该命令会进行补0的操作
set a 101010
setrange a 10 **
get a
lpush l1 a1 b1 c1
rpush r1 a1 b1 c1
-1代表列表的最后一个元素
lrange l1 0 -1
lrange r1 0 -1
llen l1
出队的元素在列表中就移除了,不加数量默认取出一个
lpop l1
rpop r1
根据count取出多个值
lpop l1 3
rpop r1 3
通过索引获取元素
lindex l1 0
通过索引替换当前元素值
lset l1 0 d11
0的位置代表要删除的数量,0表示删除所有值匹配的元素
lrem l1 0 d11
在元素之前或之后插入元素
lpush l1 a1 b1
linsert l1 before b1 b1before
linsert l1 after b1 b1after
lrange l1 0 -1
sadd s1 sss ssr
smembers s1
scard s1
1:存在,0:不存在
sismember s1 sss
1:成功,0:失败
srem s1 sss
a1有的,a2没有
sadd s1 a1 b1 c1
sadd s2 c1
sdiff s1 s2
将差集结果存到目标集合中
sdiffstore s1diffs2 s1 s2
smembers s1diffs2
a1有的,a2也有的
sinter s1 s2
将交集结果存到目标集合中
sinterstore s1sinters2 s1 s2
smembers s1sinters2
a1有的和a2有的加一块
sadd s2 d1
sunion s1 s2
将交集结果存到目标集合中
sunionstore s1sunions2 s1 s2
smembers s1sunions2
sadd s1 a1 b1 c1
spop s1
取出给定数量的元素
spop s1 3
特别适合存储对象
设置单个属性
hset user:1000 name "root"
设置多个属性
hmset user:1001 id "1001" name "zhangjg" email "[email protected]"
当field不存在时,新增键值对
hsetnx user:1001 id 1002
hget user:1000 name
hmget user:1001 id name email
hkeys user:1001
hvals user:1001
hgetall user:1001
1:存在,0:不存在
hexists user:1001 id
hlen user:1001
hstrlen user:1001 name
hincrby user:1001 id 2
hincrby user:1001 id -2
hscan user:1001 0
hdel user:1001 address
zadd lan 1 c
添加多个元素
zadd lan 1 c 5 c++ 20 c# 30 java 55 php 80 python
根据元素,获取分数
zscore lan python
从小到大,从大到小(查看所有元素和分数信息)
zrange lan 0 -1 withscores
zrevrange lan 0 -1 withscores
取出最小值,取出多次最小值
zpopmin lan
zpopmin lan 3
取出最大值,取出多次最大值
zpopmax lan
zpopmax lan 3
删除单个元素,删除多个元素
zrem lan c++
zrem lan c++ php
根据分数删除范围内元素(含头,含尾),根据索引删除范围内元素(含头,含尾)
zremrangebyscore lan 3 20
zremrangebyrank lan 0 1
zcard lan
zcount lan 1 20
zincrby lan 2 c
zincrby lan -2 c
zrank lan c++
正序:以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
倒序:以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
删除z开头的元素
zremrangebylex zset [z +
删除a-d中间的元素(含头,包含尾d,不包含dd这样的元素排序在d之后,所以d后面有内容的元素是不在删除范围之内的)
zremrangebylex zset [a [d