Redis-0-简介

目录

Redis中文官方网站:

在线测试网址:

1. 简介

2. 全局命令

常见小功能:慢查询分析

常见小功能:redis-cli详解



 


Redis中文官方网站:

http://www.redis.cn/

在线测试网址:

https://try.redis.io/

1. 简介

Redis主要是针对Linux开发与维护,且大部分公司服务器都在使用Linux操作系统,而Redis在Linux操作系统上的表现已经得到了实践的验证。对于使用Windows操作系统的读者,可以通过安装虚拟机来体验Redis的诸多特性。

Redis安装完毕之后其启动方式有3种:

①默认配置启动:redis-server

②运行配置启动:redis-server加上要修改配置名和值(可以是多对),没有设置的配置将使用默认配置:

redis-server --configKey1 configValue1 --configKey2 configValue2

③配置文件启动:将配置写到指定文件里,例如/XXX/redis.conf中,那么只需要执行如下命令即可启动Redis:redis-server /XXX/redis.conf

通过redis-cli来连接、操作Redis服务:

①redis-cli -h {host} -p {port}方式连接到Redis服务,之后所有的操作都是通过交互的方式实现。

②redis-cli -h {host} -p {port}{command}就可以直接得到命令的返回结果。

通过shutdown命令来停止Redis服务。shutdown还有一个参数,代表是否在关闭Redis前,生成持久化文件:redis-cli shutdown nosave|save

2. 全局命令

指令

解释

指令时间复杂度/说明

keys *

查看所有键

O(n)

dbsize

键总数

O(1)

exists key

检查键key是否存在,存在则返回1,不存在则返回0

 

del  key [key...]

删除键key,del是一个通用命令,无论值是什么数据结构类型,del命令都可以将其删除,返回结果为成功删除键的个数,如果删除一个不存在的键则返回0

O(k),k是键的个数

expire  key  seconds

键过期,当超过过期时间seconds后则自动删除键

 

ttl  key

返回键key的剩余过期时间,有3种返回值:大于等于0的整数来代表键key剩余的过期时间、-1代表键key没设置过期时间、-2代表键不存在。

 

type  key

键的数据结构类型,如果键不存在则返回none

 

object encoding key

查询key的内部编码

 

rename key newkey

键重命名,如果在rename之前,newkey已经存在,则newkey的值会被key的值覆盖。由于重命名键期间会执行del命令删除旧的键,如果键对应的值比较大,会存在阻塞Redis的可能性

 

renamenx key newkey

键重命名,确保只有newkey不存在的时候才被覆盖。由于重命名键期间会执行del命令删除旧的键,如果键对应的值比较大,会存在阻塞Redis的可能性

 

randomkey

随机返回一个键

 

expire key seconds

键key在seconds秒之后过期

如果expire key的键不存在,返回结果为0:

如果过期时间为负值,键会立即被删除,犹如使用del命令一样:

persist命令可以将键的过期时间清除:

对于字符串类型键,执行set命令会去掉过期时间

Redis不支持二级数据结构(例如哈希、列表)内部元素的过期功能

setex命令作为set+expire的组合,不但是原子执行,同时减少了一次网络通讯的时间

expireat key timestamp

键key在秒级时间戳timestamp后过期

 

ttl key

查询键的剩余过期时间:

①大于等于0的整数:键剩余的过期时间(ttl是秒,pttl是毫秒)。

②-1:键没有设置过期时间。

③-2:键不存在。

 

pttl key

查询键的剩余过期时间,该指令精读更高:

①大于等于0的整数:键剩余的过期时间(ttl是秒,pttl是毫秒)。

②-1:键没有设置过期时间。

③-2:键不存在。

 

pexpire key milliseconds

键key在milliseconds毫秒后过期

 

pexpireat key milliseconds-timestamp

键key在毫秒级时间戳timestamp后过期

 

move key db

move命令用于在Redis内部进行数据迁移,把指定的键从源数据库移动到目标数据库中

 

dump key

restore key ttl value

dump+restore可以实现在不同的Redis实例之间进行数据迁移的功能。

1)在源Redis上,dump命令会将键值序列化,格式采用的是RDB格式。

2)在目标Redis上,restore命令将上面序列化的值进行复原,其中ttl参数代表过期时间,如果ttl=0代表没有过期时间。

有两点需要注意:第一,整个迁移过程并非原子性

的,而是通过客户端分步完成的。第二,迁移过程是开启了两个客户端连

接,所以dump的结果不是在源Redis和目标Redis之间进行传输

 

migrate host port key|"" destination-db timeout [copy] [replace] [keys key [key...]

migrate命令也是用于在Redis实例间进行数据迁移的,实际上migrate命令就是将dump、restore、del三个命令进行组合,从而简化了操作流程。

migrate命令具有原子性,而且从Redis3.0.6版本以后已经支持迁移多个键的功能,有效地提高了迁移效率.

实现过程和dump+restore基本类似,但是有3点

不太相同:第一,整个过程是原子执行的,不需要在多个Redis实例上开启

客户端的,只需要在源Redis上执行migrate命令即可。第二,migrate命令的

数据传输直接在源Redis和目标Redis上完成的。第三,目标Redis完成restore

后会发送OK给源Redis,源Redis接收后会根据migrate对应的选项来决定是否

在源Redis上删除对应的键。

host:目标Redis的IP地址。

port:目标Redis的端口。

key|"":在Redis3.0.6版本之前,migrate只支持迁移一个键,所以此处是要迁移的键,但Redis3.0.6版本之后支持迁移多个键,如果当前需要迁移多个键,此处为空字符串""。

destination-db:目标Redis的数据库索引,例如要迁移到0号数据库,这里就写0。

timeout:迁移的超时时间(单位为毫秒)。

[copy]:如果添加此选项,迁移后并不删除源键。

[replace]:如果添加此选项,migrate不管目标Redis是否存在该键都会正常迁移进行数据覆盖。

[keys key[key...]]:迁移多个键,例如要迁移key1、key2、key3,此处填写“keys key1 key2 key3”。

keys pattern

全量遍历键

*代表匹配任意字符

·代表匹配一个字符

[]代表匹配部分字符,例如[1,3]代表匹配1,3,[1-10]代表匹配1到10的任意数字。

\x用来做转义,例如要匹配星号、问号需要进行转义。

 

scan cursor

[match pattern]

[count number]

渐进式遍历,它能有效的解决keys命令存在的问题,scan采用渐进式遍历的方式来解决keys命令可能带来的阻塞问题,但是要真正实现keys的功能,需要执行多次scan。

①cursor是必需参数,实际上cursor是一个游标,第一次遍历从0开始,每次scan遍历完都会返回当前游标的值,直到游标值为0,表示遍历结束。

②match pattern是可选参数,它的作用的是做模式的匹配,这点和keys的模式匹配很像。

③count number是可选参数,它的作用是表明每次要遍历的键个数,默认值是10,此参数可以适当增大。

 

select dbIndex

切换数据库,Redis默认配置中是有16个数据库。不过Redis3.0中已经逐渐弱化这个功能

 

flushdb/flushall

flushdb只清除当前数据库,flushall会清除所有数据库

 

 

 

常见小功能:慢查询分析

所谓慢查询日志就是系统在命令执行前后计算每条命令的执行时间,当超过预设阀值,就将这条命令的相关信息记录下来。

配置Redis慢查询分析

①慢查询预设超时阈值:

slowlog-log-slower-than,单位是微秒,默认值是10000,如果一条指令的执行时间超过了10000微秒,那么它将被记录在慢查询日志中。

slowlog-log-slower-than=0会记录所有的命令。

slowlog-log-slowerthan<0对于任何命令都不会进行记录。

②如何读取慢查询记录:

slowlog-max-len只是标记慢查询日志最多存储多少条,并没有说明存放在哪里。slowlog-max-len就是列表的最大长度。一个新的命令满足慢查询条件时被插入到这个列表中,当慢查询日志列表已处于其最大长度时,最早插入的一个命令将从列表中移出。

可以通过命令来实现对慢查询日志的访问和管理:

获取慢查询日志:slowlog get [n]

获取慢查询日志列表当前的长度:slowlog len

慢查询日志重置:slowlog reset

每个每个慢查询日志有4个属性组成:慢查询日志标识id、发生时间戳、命令耗时、执行命令和参数。

③如何配置这2个参数

要么修改配置文件、要么使用config set命令动态修改

config set slowlog-log-slower-than 50000

config set slowlog-max-len 10

config rewrite

常见小功能:redis-cli详解

redis-cli -help查看帮助

redis-cli -r这里的r代表repeat,即将命令执行多次

redis-cli -i这里的i代表interval,即每隔几秒执行一次命令,但是-i选项必须和-r选项一起使用。-i的单位是秒。

redis-cli -x该选项代表从标准输入来读取数据作为redis-cli的最后一个参数。

redis-cli -c该选项是连接Redis Cluster节点时需要使用的,-c选项可以防止moved和ask异常。

redis-cli -a如果Redis配置了密码,可以用-a(auth)选项,有了这个选项就不需要手动输入auth命令。

redis-cli --scan/--pattern用于扫描指定模式的key,相当于使用scan命令

redis-cli --slave把当前客户端模拟成当前Redis节点的从节点,可以用来获取当前Redis节点的更新操作。

redis-cli --rdb该选项会请求Redis实例生成并发送RDB持久化文件,保存在本地,可以使用它做持久化文件的定期备份。

redis-cli --pipe该选项用于将命令封装成Redis通信协议定义的数据格式,批量发送给Redis执行。

redis-cli --bigkeys该选项使用scan命令对Redis的key进行采样,找出内存占用比较大的键值。

redis-cli --eval该选项用于执行指定的Lua脚本。

redis-cli --latency该选项可以测试客户端到目标Redis的网络延迟

redis-cli --latency-history每隔一段时间(参数i控制)输出客户端到目标Redis的网络延迟,而--latency只输出一次,该参数可以输出多次

redis-cli --latency-dist该选项使用统计图表的形式从控制台输出延迟统计信息

redis-cli --stat实时获取Redis的重要统计信息

redis-cli --raw要求返回结果必须是格式化之后的结果

redis-cli --no-raw要求返回结果必须是原始格式

redis-server --test-memory检测当前操作系统是否稳定的分配指令容量内存给Redis

redis-benchmark -c该选项代表客户端client的并发数量

redis-benchmark -n该选项代表客户端请求总量num

redis-benchmark -q该选项仅仅现实redis-benchmark的每秒请求reuqest的信息

redis-benchmark -r该选项可以向Redis随机random插入key

redis-benchmark -P代表每个请求pipeline的数据量

redis-benchmark -k代表客户端是否使用keepalive,1为使用,0为不使用。

redis-benchmark -t该选项可以对指定命令进行基准测试

redis-benchmark --csv将结果按照CSV格式输出

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值