通过建站学运维1901-47任务

5.81 Redis常见操作

  • keys * //取出所有key
  • keys my* //模糊匹配
  • exists name //查询键是否存在。有name键 返回1 ,否则返回0;
  • del key1 // 删除一个key //成功返回1 ,否则返回0;
  • EXPIRE key1 100 //设置key1 100s后过期
  • ttl key // 查看键 还有多长时间过期,单位是s,当 key 不存在时,返回 -2 。 当 key 存在但没有设置剩余生存时间时,返回 -1 。 否则,返回 key 的剩余生存时间。
  • select 0 //代表选择当前数据库,默认进入0 数据库。redis数据库默认有16个,从0-15。
  • move age 1 // 把age键 移动到1 数据库
  • persist key1 //取消key1的过期时间
  • randomkey //随机返回一个key
  • rename oldname newname //重命名key
  • type key1 //返回键的类型
  • dbsize //返回当前数据库中key的数目
  • info //返回redis数据库状态信息
  • flushdb //清空当前数据库中所有的键
  • flushall //清空所有数据库中的所有的键
  • bgsave //保存数据到 rdb文件中,在后台运行
  • save //作用同上,但是在前台运行
  • config get * //获取所有配置参数
  • config get dir //获取配置参数
  • config set dir //更改配置参数
  • 数据恢复: 首先定义或者确定dir目录和dbfilename,然后把备份的rdb文件放到dir目录下面,重启redis服务即可恢复数据

5.82 redis配置文件讲解

5.82.1网络相关
  • bind 127.0.0.1
    指定绑定IP,如果想绑定多个IP,可以一行写多个IP,空格分开 bind ip1 ip2。取消本行设置,会监听所有网卡的所有端口。

  • protected-mode yes
    设置为yes,则开启了安全模式,当redis.conf中没有定义bind的ip时,也就是说redis将会绑定全网IP, 并且也没有设置访问密码,这两个条件满足时,当远程的机器访问redis时,就会被限制了。建议开启。

  • requirepass
    设定密码

  • port 6379
    定义监听的端口

  • tcp-backlog 511
    关于backlog的理解,需要先搞清楚TCP三次握手。这个tcp-backlog定义了一个队列的长度。这个队列指的是, TCP三次握手中最后一次握手完成后的那个状态的连接(下图的accept queue)。
    5-123.png
    该参数设定的值不能大于内核的somaxconn的值,要想设置的非常高,那么首先要将内核参数somaxconn的值提升。

  • somaxconn,定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数,默认值为128. 限制了每个端口接收新tcp连接侦听队列的大小。对于一个经常处理新连接的高负载 web服务环境来说,默认的128太小了。 大多数环境这个值建议增加到2048或者更多。

  • 调整内核参数:
    echo 2048 > /proc/sys/net/core/somaxconn
    如果想启动时加载,把上边这条命令加入到
    rc.local文件里即可。

  • timeout 0
    当客户端处于空闲状态时,redis服务端会主动关闭连接,这个参数用来定义客户端空闲多少秒,服务端关闭连接,如果是0则不限制。

  • tcp-keepalive 300
    TCP连接保活策略,可以通过tcp-keepalive配置项来进行设置,单位为秒,假如设置为60秒,则server端会每60秒向连接空闲的客户端发起一次ACK请求, 以检查客户端是否已经挂掉,对于无响应的客户端则会关闭其连接。所以关闭一个连接最长需要120秒的时间。如果设置为0,则不会进行保活检测。

5.82.2通用配置

  • daemonize yes
    启动的时候后台启动,默认为no

  • supervised no
    是否通过upstart或systemd管理守护进程。默认no没有服务监控,其它选项有upstart, systemd, auto

  • pidfile /var/run/redis_6379.pid
    pid文件路径

  • loglevel notice
    日志级别

  • logfile ""
    日志路径和名字,默认为空,当不以后台启动时,日志直接输出到屏幕,当后台启动时,日志输出到/dev/null

  • databases 16
    定义redis的数据库个数,默认为16个(0-15),可以使用select id,来选择对应的数据库。

  • always-show-logo yes
    redis启动时,会打印ASCII艺术logo

5.82.3快照(持久化)相关配置

  • save
    定义数据持久化的策略,这个持久化指的是RDB格式的数据。save 900 1指的是900秒内至少有一个key发生改变,满足这个条件就会触发持久化。 要想关闭RDB格式的持久化,需要改为这样save ""
  • stop-writes-on-bgsave-error yes

当save过程中出现失败的情况时,或者有某些错误时,总之导致了内存中的数据和磁盘中的数据不一致了。该参数定义此时是否继续进行save的操作。

  • rdbcompression yes
    是否在save时将string对象进行压缩,压缩算法为LFZ。开启该功能会额外消耗CPU资源。

  • rdbchecksum yes
    当save完成后,是否使用CRC64算法校验rdb文件。

  • dbfilename dump.rdb
    save的rdb文件名字,路径在dir定义的目录下

  • dir ./
    定义rdb文件路径

5.82.4副本相关配置(主从)

5-124.png

  • replicaof
    定义主的ip和端口,5.0版本以前使用slaveof,该参数是在从上定义的。

  • masterauth
    定义主的密码,该参数是在从上定义的。该密码其实就是在主上由requirepass参数定义的密码。

  • replica-serve-stale-data yes 当从Redis失去了与主Redis的连接,或者主从同步正在进行中时,Redis该如何处理外部发来的访问请求呢?这里,从Redis可以有两种选择:
    replica-serve-stale-data yes,即使主从断了,从依然响应客户端的请求。
    replica-serve-stale-data no,主从断开了,则从会提示客户端"SYNC with master in progress",但有些指令还可以使用 INFO, replicaOF, AUTH, PING, SHUTDOWN, REPLCONF, ROLE, CONFIG,SUBSCRIBE, UNSUBSCRIBE, PSUBSCRIBE, PUNSUBSCRIBE, PUBLISH, PUBSUB, COMMAND, POST, HOST: and LATENCY

转载于:https://my.oschina.net/u/4067478/blog/3030050

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值