Redis基础

发布时间:2023年12月25日

Redis

命令行操作

string类型数据

增删改查

添加、修改数据

set key value 

获取数据

get key

删除数据

del key

添加、修改多个数据

mset key1 value1 key2 value2

获取多个数据

mget key1 key2

获取数据字符个数

strlen key

追加信息到原始信息候补(如果原始信息存在就追加否则新建)

append key value
增减指定值

设置数据增加指定范围的值

incr key
incrby key increment
incrbyfloat key increment

设置数据减少指定范围的值

decr key
decrby key increment
设置有效期
setex key seconds value
pexpire key milliseconds 

hash 类型基本操作

添加、修改、数据

hset key filedId value

获取数据

hget key fieid
hgetall  key

删除数据

hdel key field1

添加、修改多个数据

hmset key field1 value1 filed2 value2

获取多个数据

hmget key fieid1 fieid2

获取哈希表中字段数量

hlen key

获取哈希表中是否存在指定的字段

hexists key fieid

获取哈希表中所有字段名或字段值

hkeyss key
hvals key

指定字段的数值数据增加指定范围

hincrby key field increment
hincrbyfloat key fieid increment

list数据

添加、修改数据

lpush key value1 value2
rpush key value1 value2

获取数据

lrange key start stop
lindex key index
llen key

获取并移出数据

lpop key
rpop key

规定时间内获取并移出数据

blopop key1 key2 timeout
brpop key1 key2 timeout

移出指定数据

lrem key count value

set类型数据

添加数据

sadd key member1 member2

获取全部数据

smembers keys

删除数据

srem key member1 menber2

获取集合数据总量

scard key

判断集合中是否包含指定数据

sismember key member

随机获取集合中指定数量数据

srandmember key count

随机获取集合中的某个数据并将该数据移出集合

spop key

求两个集合交并集

sinter key key2
sunion key1 key2
sdiff key1 key2

求两个集合交并集存储到指定集合中

sinterstore desination key key2
sunionstore destination key1 key2
sdiffstore destination key1 key2

将指定数据从原始集合中移动到目标集合中

smove source destination member

sorted_set类型数据

添加数据

radd key score1 member score2 member2

添加全部数据

rrange key start stop [withscore]
zrevrange key start stop [withscores]

删除数据

zrem key menber 

按条件获取数据

zrangebyscore key min max [withscores limit]
zrevrangebyscore key max min [withscores]

条件删除数据

zremrangebyrank key start stop
zremrangebyscore key min max

key操作

删除指定key

del key

获取key是否存在

exists key

获取key的类型

type key

为指定key设置有效期

expire key sconds
pexpire key minllseconds
expireat key timestamp
pexpireat key milliseconds-timestamp

获取key有效期

ttl key
pttl key

切换key从时效性转换为永久性

persist key

查询key

keys pattern
keys *
keys it*
keys *sa
keys ??sdad # 查询所有以sdad前两个字符任意
keys user:? # 查询所有以user:开头,最后一个字符任意
keys u[sdas]er:1 # 查询所有以u开头,以er:1结尾,中间包含一个字母,s或t

为key改名

rename key newkey
renamenx key newkey

对所有key排序

sort

其它key通用操作

help @generic

数据库操作

切换数据库

select index

其它操作

quit 
ping
echo message

移动数据

move key db
move name 1

数据清除

dbsize
flushdb
flushall

持久化存储

save # 备份
bgsave # 后台备份

RDB

在配置文件中添加,实现持久化存储

save 10 2 # 实现没10秒有新增两条数据就持久化一次

AOF

在配置文件中新增

appendonly yes
appebdfsync always # M每次执行命令就写入一次
appebdfsync everysec 3# 每秒写入一次
appebdfsync no # 系统控制,无法自己控制

重写方式

在这里插入图片描述

在这里插入图片描述

事务

开启事务

输入这个命令后,再去设置值会是队列的形式去设置

multi

执行事务

exec

取消事务

在事务过程中出错执行这条即可,但前提必须要有multi

discard

执行过程

set num 10 # 设置一个值为10
setnx locak-num 1 # 设置锁,将num改为1
del lock-num -1 # 设置完成后将锁删除

分布式锁

如果长时间未操作就将锁释放

expire lock-key second
pexpire lock-key milliseconds

例如:持有锁的操作最长执行时间127ms,最短执行时间7ms。

测试百万次最长执行时间对应命令的最大耗时,测试百万次网络延迟平均耗时

锁时间设定推荐:最大耗时120%+平均网络延迟110%

如果业务最大耗时<<网络平均延迟,通常为2个数量级,取其中单个耗时较长即可

配置

服务端设定

  • 设定服务器以守护进程方式运行
daemonize yes|no
  • 绑定路径
bind 127.0.0.1
  • 设置服务器端口号
port 6379
  • 设置数据库数量
database 16

日志配置

  • 设置服务器以指定日志记录级别
loglevel debug | verbosel |  notice | warning
  • 日志记录文件名
logfile 端口号.log

客户端配置

  • 设置同一时间最大客户连接数,默认无限制,当客户端连接到上限时,Redis会关闭的链接
maxclient 0
  • 客户端闲置等待最大时长,达到最大值后关闭,如需关闭该功能,设置为0
timeout 200

多服务器快捷配置

导入并加载配置文件信息,用于快捷创建redis公共配置较多的redis实例配置文件,便于维护。

include /path/server-端口号.conf

在这里插入图片描述

设置服务器端口号

port 6379
  • 设置数据库数量
database 16

日志配置

  • 设置服务器以指定日志记录级别
loglevel debug | verbosel |  notice | warning
  • 日志记录文件名
logfile 端口号.log

客户端配置

  • 设置同一时间最大客户连接数,默认无限制,当客户端连接到上限时,Redis会关闭的链接
maxclient 0
  • 客户端闲置等待最大时长,达到最大值后关闭,如需关闭该功能,设置为0
timeout 200

多服务器快捷配置

导入并加载配置文件信息,用于快捷创建redis公共配置较多的redis实例配置文件,便于维护。

include /path/server-端口号.conf

在这里插入图片描述

文章来源:https://blog.csdn.net/weixin_46533577/article/details/135197093
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。