maxwaitmill redis_Redis常用命令及配置

Redis常用命令:

redis启动:redis-cli.exe

查看redis当前所有的key:keys*

增加:set key value

获取key的value:get key

(如果key不存在,则返回

删除一个key:del key

(如果删除出成果,返回整数类型1,否则返回0)

设置key的有效时间 (单位为秒) :expire key seconds

获取key的剩余有效时间,(持久key返回 1,key不存在返回-2,具体时间返回秒数):ttl key

设置有时效性的key为持久的key :persist key

查看redis当前的配置信息:config get*

设置键值(set命令):set key value[ ex seconds] [px millseconds] [Nx xx]

参数说明:

Ex seconds #设置键的过期时间,单位为秒

Px millseconds # 设置键的过去时间 单位为毫秒

Nx # 只有当键不存在的时候才能设置key值

XX #只有当键存在的时候才能设置key值

判断一个键值是否存在 :exists key (如果key存在,返回类型为1,否则返回为0)

11.查看key所存储的值的类型 :type key

12.清空redis服务器的所有数据(删除所有数据库的所有key):flushall

Redis常见错误:

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

redis 127.0.0.1:6379> CONFIG SET logfile "/var/log/redis/redis-server.log" (error) ERR Unsupported CONFIG parameter: logfile

原因:不能通过set动态设置logfile

(error)OOM command not allow when used memory>'maxmemory'原因:redis内存到达上限,不允许在存数据

解决办法:

增加redis内存,修改redis.conf maxmemory 2GB

修改redis存储策略:

默认的redis设置时非常保守的,即内存超限后不再储存,可以把策略修改为LRU算法(最近最少使用的算法),使新的存储信息替换掉旧的信息,而不会内存越界,修改redis.conf

maxmemory - policy volatile -lru

redis的存储策略包括:

vloatile -lru 根据算法来选取,并删除已经设置expire时间的key

allkeys-lru 根据算法,删除任意的key,不论是否设置了expire时间

volatile - random 随机删除设置了expire时间的key

allkey-random 随机删除任意一个key 不论key是否设置了expire时间

volatile -ttl 删除具有最近终止时间TTL的key

noeviction 不删除,写操作时返回错误

3.减少数据存入redis,考虑是否有必要将数据存入redis

若没有设置maxmemory变量,即使设置了maxemenory -policy也不会起作用

若没有设置maxmemory变量,在处理命令时将不会调用释放策略,回加速命令的处理过程

当设置了maxmemory参数后,在处理每个命令的时候都会根据

maxmemory-policy去删除对用的key值

(对于LRU机制,redis的LRU算法不是真正意义撒谎给你的LRU,而是使用另一种方式实现的,也就意味着,redis并不能每次都选择一个最好的key来删除。没有使用真正的LRU算法的原因是,它可能会消耗更多的内存,该算法和郑州的LRU算法效果大致相同 。redis是在一小部分key中选择最优的要删除的key,这一小部分key 的个数可以指定,可以在配置文件中设置参数)

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

Rdies 配置参数详解

daemonize no 默认情况下,redis不在后在运行的,如果需要在后台运行,将参数的值设置为yes

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

port 6379 指定redis运行端口 默认时6379

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

timeout 0 设置客户端连接时间,单位为秒,当客户端在这段时间内没有发生任何指令时,则关闭连接。0表示关闭此设置

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

loglevel notice 指定日志级别 生产环境推荐用notice

edis总共有四个级别:(默认为verbose)

debug 常用于开发和测试

verbose 有用的信息,不像debug会记录这么多

notice 普通的verbose 常用于生产环境。

warning 重要或严重的信息记录到日志

database 16 可用数据库数 ,默认值为16 默认数据库位0 ,数据库范围为0到databases -1之间

save 保存数据到磁盘。表示在多长时间,有多少次更新操作。就将数据同步到数据文件rdb,相当于条件触发抓取快照,这个可以多条件配合 如 save 60 1000 60秒内至少有1000个key被改变

stop-writes-on-bgsave-error yes 后台存储错误停止写入

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

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

requirepass foodared 设置客户端密码

maxclients 1000 设置同一时间最客户端连接数,默认无限制。redis可以同时 打开的客户端连接数为redis进程可以打开的最大文件描述符数,如果设置为0,则表示不限制,当客户端连接数到达限制时,redis会关闭新的连接并向客户端返回max number of clients reache错误信息 -slowlog-log-slower-than 10000 记录超过特定执行时间的命令,执行时间不包括I/O计算。比如连接客户端,返回结果等,只是命令执行时间。时间以微秒为单位,因此1000000为1秒,若设置为符数,则关闭慢日志,若设置为0 ,则每个执行命令都会记录

slowlog-max-len 128 慢日志记录长度,默认为128 当慢日志超过128,最先进入队列的记录会被踢出

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值