redis常用命令、常见错误、配置技巧等分享

2020-02-21 23:17

redis常用命令、常见错误、配置技巧等分享

1. redis查看当前所有的key

复制代码 代码如下: KEYS *

2. 查看当前redis的配置信息 复制代码 代码如下:

CONFIG GET *

3. MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

强制停止redis快照导致,redis运行用户没有权限写rdb文件或者磁盘空间满了,解决办法:

复制代码 代码如下:

config set stop-writes-on-bgsave-error no 例如: 复制代码 代码如下:

set 'name' 'shenhui'

-MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.

config set stop-writes-on-bgsave-error no +OK

set 'name' 'shenhui' +OK

4. redis 127.0.0.1:6379> CONFIG SET logfile \(error) ERR Unsupported CONFIG parameter: logfile

logfile 不能通过set动态设置

5.(error) OOM command not allowed when used memory > 设置了maxmemory的选项,redis内存使用达到上限。 可以通过设置LRU算法来删除部分key,释放空间。

默认是按照过期时间的,如果set时候没有加上过期时间就会导致数据写满maxmemory。

如果不设置maxmemory或者设置为0 64位系统不限制内存,32位系统最多使用3GB内存。

volatile-lru -> 根据LRU算法生成的过期时间来删除。 allkeys-lru -> 根据LRU算法删除任何key。 volatile-random -> 根据过期设置来随机删除key。 allkeys->random -> 无差别随机删。

volatile-ttl -> 根据最近过期时间来删除(辅以TTL) noeviction -> 谁也不删,直接在写操作时返回错误。

6. reids日志位置

logfile 日志记录方式,默认值为stdout,如果设置为stdout且以守护进程方式运行,那么日志会被重定向到/dev/null,也就是不记日志。

7. reids配置参数详解

复制代码 代码如下:

#daemonize no 默认情况下, redis 不是在后台运行的,如果需要在后台运行,把该项的值更改为 yes daemonize yes

# 当 redis 在后台运行的时候, Redis 默认会把 pid 文件放在 /var/run/redis.pid ,你可以配置到其他地址。

# 当运行多个 redis 服务时,需要指定不同的 pid 文件和端口 pidfile /var/run/redis_6379.pid

# 指定 redis 运行的端口,默认是 6379 port 6379

# 在高并发的环境中,为避免慢客户端的连接问题,需要设置一个高速后台日志 tcp-backlog 511

# 指定 redis 只接收来自于该 IP 地址的请求,如果不进行设置,那么将处理所有请求 # bind 192.168.1.100 10.0.0.1 # bind 127.0.0.1

# 设置客户端连接时的超时时间,单位为秒。当客户端在这段时间内没有发出任何指令,那么关闭该连接 # 0 是关闭此设置 timeout 0 # TCP keepalive

# 在 Linux 上,指定值(秒)用于发送 ACKs 的时间。注意关闭连接需要双倍的时间。默认为 0 。 tcp-keepalive 0

# 指定日志记录级别,生产环境推荐 notice

# Redis 总共支持四个级别: debug 、 verbose 、 notice 、 warning ,默认为 verbose # debug 记录很多信息,用于开发和测试

# varbose 有用的信息,不像 debug 会记录那么多 # notice 普通的 verbose ,常用于生产环境 # warning 只有非常重要或者严重的信息会记录到日志 loglevel notice # 配置 log 文件地址

# 默认值为 stdout ,标准输出,若后台模式会输出到 /dev/null 。 logfile /var/log/redis/redis.log # 可用数据库数

# 默认值为 16 ,默认数据库为 0 ,数据库范围在 0- ( database-1 )之间 databases 16

################################ 快照################################# # 保存数据到磁盘,格式如下 : # save

# 指出在多长时间内,有多少次更新操作,就将数据同步到数据文件 rdb 。 # 相当于条件触发抓取快照,这个可以多个条件配合 # 比如默认配置文件中的设置,就设置了三个条件 # save 900 1 900 秒内至少有 1 个 key 被改变 # save 300 10 300 秒内至少有 300 个 key 被改变 # save 60 10000 60 秒内至少有 10000 个 key 被改变 # save 900 1 # save 300 10 # save 60 10000 # 后台存储错误停止写。

stop-writes-on-bgsave-error yes

# 存储至本地数据库时(持久化到 rdb 文件)是否压缩数据,默认为 yes rdbcompression yes

# RDB 文件的是否直接偶像 chcksum rdbchecksum yes

# 本地持久化数据库文件名,默认值为 dump.rdb dbfilename dump.rdb

# 工作目录

# 数据库镜像备份的文件放置的路径。

# 这里的路径跟文件名要分开配置是因为 redis 在进行备份时,先会将当前数据库的状态写入到一个临时文件中,等备份完成,

# 再把该该临时文件替换为上面所指定的文件,而这里的临时文件和上面所配置的备份文件都会放在这个指定的路径当中。

# AOF 文件也会存放在这个目录下面 # 注意这里必须制定一个目录而不是文件 dir /var/lib/redis-server/

################################# 复制 ################################# # 主从复制 . 设置该数据库为其他数据库的从数据库 .

# 设置当本机为 slav 服务时,设置 master 服务的 IP 地址及端口,在 Redis 启动时,它会自动从 master 进行数据同步 # slaveof

# 当 master 服务设置了密码保护时 ( 用 requirepass 制定的密码 ) # slave 服务连接 master 的密码 # masterauth

# 当从库同主机失去连接或者复制正在进行,从机库有两种运行方式:

# 1) 如果 slave-serve-stale-data 设置为 yes( 默认设置 ) ,从库会继续响应客户端的请求 # 2) 如果 slave-serve-stale-data 是指为 no ,出去 INFO 和 SLAVOF 命令之外的任何请求都会返回一个

# 错误 \slave-serve-stale-data yes

# 配置 slave 实例是否接受写。写 slave 对存储短暂数据(在同 master 数据同步后可以很容易地被删除)是有用的,但未配置的情况下,客户端写可能会发送问题。 # 从 Redis2.6 后,默认 slave 为 read-only slaveread-only yes

# 从库会按照一个时间间隔向主库发送 PINGs. 可以通过 repl-ping-slave-period 设置这个时间间隔,默认是 10 秒

# repl-ping-slave-period 10

# repl-timeout 设置主库批量数据传输时间或者 ping 回复时间间隔,默认值是 60 秒 # 一定要确保 repl-timeout 大于 repl-ping-slave-period # repl-timeout 60

# 在 slave socket 的 SYNC 后禁用 TCP_NODELAY

# 如果选择“ yes ” ,Redis 将使用一个较小的数字 TCP 数据包和更少的带宽将数据发送到 slave , 但是这可能导致数据发送到 slave 端会有延迟 , 如果是 Linux kernel 的默认配置,会达到 40 毫秒 . # 如果选择 \,则发送数据到 slave 端的延迟会降低,但将使用更多的带宽用于复制 . repl-disable-tcp-nodelay no # 设置复制的后台日志大小。

# 复制的后台日志越大, slave 断开连接及后来可能执行部分复制花的时间就越长。 # 后台日志在至少有一个 slave 连接时,仅仅分配一次。 # repl-backlog-size 1mb

# 在 master 不再连接 slave 后,后台日志将被释放。下面的配置定义从最后一个 slave 断开连接后需要释放的时间(秒)。

# 0 意味着从不释放后台日志 # repl-backlog-ttl 3600

# 如果 master 不能再正常工作,那么会在多个 slave 中,选择优先值最小的一个 slave 提升为 master ,优先值为 0 表示不能提升为 master 。 slave-priority 100

# 如果少于 N 个 slave 连接,且延迟时间 <=M 秒,则 master 可配置停止接受写操作。 # 例如需要至少 3 个 slave 连接,且延迟 <=10 秒的配置: # min-slaves-to-write 3 # min-slaves-max-lag 10 # 设置 0 为禁用

# 默认 min-slaves-to-write 为 0 (禁用), min-slaves-max-lag 为 10 ################################## 安全 ###################################

# 设置客户端连接后进行任何其他指定前需要使用的密码。

# 警告:因为 redis 速度相当快,所以在一台比较好的服务器下,一个外部的用户可以在一秒钟进行 150K 次的密码尝试,这意味着你需要指定非常非常强大的密码来防止暴力破解 # requirepass foobared # 命令重命名 .

# 在一个共享环境下可以重命名相对危险的命令。比如把 CONFIG 重名为一个不容易猜测的字符。 # 举例 :

# rename-command CONFIG b840fc02d524045429941cc15f59e41cb7be6c52 # 如果想删除一个命令,直接把它重命名为一个空字符 \即可,如下: # rename-command CONFIG \

################################### 约束################################### #设置同一时间最大客户端连接数,默认无限制,

#Redis 可以同时打开的客户端连接数为 Redis 进程可以打开的最大文件描述符数, #如果设置 maxclients 0 ,表示不作限制。

#当客户端连接数到达限制时, Redis 会关闭新的连接并向客户端返回 max number of clients reached 错误信息

# maxclients 10000

# 指定 Redis 最大内存限制, Redis 在启动时会把数据加载到内存中,达到最大内存后, Redis 会按照清除策略尝试清除已到期的 Key

# 如果 Redis 依照策略清除后无法提供足够空间,或者策略设置为 ”noeviction” ,则使用更多空间的命令将会报错,例如 SET, LPUSH 等。但仍然可以进行读取操作

# 注意: Redis 新的 vm 机制,会把 Key 存放内存, Value 会存放在 swap 区 # 该选项对 LRU 策略很有用。

# maxmemory 的设置比较适合于把 redis 当作于类似 memcached 的缓存来使用,而不适合当做一个真实的 DB 。

# 当把 Redis 当做一个真实的数据库使用的时候,内存使用将是一个很大的开销 # maxmemory

# 当内存达到最大值的时候 Redis 会选择删除哪些数据?有五种方式可供选择

# volatile-lru -> 利用 LRU 算法移除设置过过期时间的 key (LRU: 最近使用 Least RecentlyUsed ) # allkeys-lru -> 利用 LRU 算法移除任何 key


redis常用命令、常见错误、配置技巧等分享.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:一年级下学期体育教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: