redis 常见配置/操作及注意事项
常见配置
守护进程模式启动配置
1、daemonize介绍
A、redis.conf配置文件中daemonize守护线程,默认是NO。
B、daemonize是用来指定redis是否要用守护线程的方式启动。
2、daemonize 设置yes或者no区别
daemonize:yes:redis采用的是单进程多线程的模式。当redis.conf中选项daemonize设置成yes时,代表开启守护进程模式。在该模式下,redis会在后台运行,(即使在终端启动后再断开终端连接,也会切换到后台运行)并将进程pid号写入至redis.conf选项pidfile设置的文件中,此时redis将一直运行,除非手动kill该进程。
daemonize:no: 当daemonize选项设置成no时,启动redis后,redis 在当前终端显示输出,并运行,exit强制退出或者关闭连接工具(putty,xshell等)造成的当前终端断开连接都会导致redis进程退出。
外网远程访问连接配置
redis 从3.2 之后加入的新特性,protected-mode,配置文件默认配置为yes,Protected-mode 是为了禁止公网访问redis cache,加强redis安全的
为了能够允许外网远程连接,两种配置方法:
1、#bind 127.0.0.1 注释此行,不绑定本地ip 地址
requirepass asdf 在上述配置注释的请况下,为了安全考虑,增加密码认证 requirepass asdf
2、设置 protected-mode no
注意:如果不开通外网连接,则外网客户端telnet redis 端口会拒绝连接,开通访问即使设置密码也能连接。
日志配置
logfile "" 默认配置为空,此时日志输出为标准输出也就是输出在当前终端,当配置为damonize时,redis 为后台守护进程运行,此时日志输出到/dev/null
最大连接数配置
maxclients 10000 设置同一时间最大客户端连接数,默认无限制,Redis可以同时打开的客户端连接数为Redis进程可以打开的最大文件描述符数,如果设置 maxclients 0,表示不作限制。当客户端连接数到达限制时,Redis会关闭新的连接并向客户端返回max number of clients reached错误信息
最大内存设置
maxmemory <bytes> 指定Redis最大内存限制,Redis在启动时会把数据加载到内存中,达到最大内存后,Redis会先尝试清除已到期或即将到期的Key,当此方法处理 后,仍然到达最大内存设置,将无法再进行写入操作,但仍然可以进行读取操作。Redis新的vm机制,会把Key存放内存,Value会存放在swap区
数据写入设置
save <seconds> <changes> 指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
Redis默认配置文件中提供了三个条件: save 900 1 save 300 10 save 60 10000
appendonly no 指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有的数据会在一段时间内只存在于内存中。默认为no
当master服务设置了密码保护时,slav服务连接master的密码
masterauth <master-password>
常见操作
启动
./redis-server 读取默认配置文件
./redis-server ../redis-server.conf -p 1234 指定配置文件和端口
登录验证
设置Redis认证密码后,客户端登录时需要使用-a
参数输入认证密码,不添加该参数虽然也可以登录成功,但是没有任何操作权限。如下:
$ ./redis-cli -h 127.0.0.1 -p 6379 127.0.0.1:6379> get foo (error) NOAUTH Authentication required.
使用密码认证登录,并验证操作权限:
$ ./redis-cli -h 127.0.0.1 -p 6379 -a myPassword 127.0.0.1:6379> config get requirepass 1) "requirepass" 2) "myPass"
关闭服务
服务端:killall redis-server
客户端:./redis-cli -h ip -p 6379 shutdown