Redis学习笔记-安装篇(Centos7)

1、安装

  这里使用源代码安装的方式,如果你希望使用yum或者rpm包安装的方式,可以百度一下,安装方法可谓多如牛毛。

# 下载安装包
# wget http://download.redis.io/releases/redis-3.2.5.tar.gz

#编译源程序
# tar xzvf redis-3.2.5.tar.gz
# cd redis-3.2.5/
# make

# 将redis命令加入系统命令
# cd src/
# cp redis-server redis-cli /usr/local/bin/

2、启动redis

  安装完成,使用默认配置,只需要启动redis服务端即可

# 启动redis服务器
# redis-server 
4487:C 02 Dec 09:26:33.008 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
4487:M 02 Dec 09:26:33.009 * Increased maximum number of open files to 10032 (it was originally set to 1024).
                _._                                                  
           _.-``__ ''-._                                             
      _.-``    `.  `_.  ''-._           Redis 3.2.5 (00000000/0) 64 bit
  .-`` .-```.  ```/    _.,_ ''-._                                   
 (    '      ,       .-`  | `,    )     Running in standalone mode
 |`-._`-...-` __...-.``-._|'` _.-'|     Port: 6379
 |    `-._   `._    /     _.-'    |     PID: 4487
  `-._    `-._  `-./  _.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |           http://redis.io        
  `-._    `-._`-.__.-'_.-'    _.-'                                   
 |`-._`-._    `-.__.-'    _.-'_.-'|                                  
 |    `-._`-._        _.-'_.-'    |                                  
  `-._    `-._`-.__.-'_.-'    _.-'                                   
      `-._    `-.__.-'    _.-'                                       
          `-._        _.-'                                           
              `-.__.-'                                               

4487:M 02 Dec 09:26:33.012 # WARNING: The TCP backlog setting of 511 cannot be enforced because /proc/sys/net/core/somaxconn is set to the lower value of 128.
4487:M 02 Dec 09:26:33.012 # Server started, Redis version 3.2.5
4487:M 02 Dec 09:26:33.012 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
4487:M 02 Dec 09:26:33.012 # WARNING you have Transparent Huge Pages (THP) support enabled in your kernel. This will create latency and memory usage issues with Redis. To fix this issue run the command 'echo never > /sys/kernel/mm/transparent_hugepage/enabled' as root, and add it to your /etc/rc.local in order to retain the setting after a reboot. Redis must be restarted after THP is disabled.
4487:M 02 Dec 09:26:33.012 * The server is now ready to accept connections on port 6379

  redis服务端默认端口使用6379,默认只有本机能够访问。注意,如果只是使用“redis-server”开启redis服务端服务,程序会阻塞住。如果不想阻塞,可以将程序放入后台执行。

3、客户端连接

  客户端只要输入命令“redis-cli”即可连接上本机的redis服务端。

# 客户端连接
# redis-cli 
127.0.0.1:6379> 

4、停止redis实例

  最简单的方法就是在服务端使用“Ctrl+C”中断实例。

  还可以通过客户端,使用命令“shutdown”停止redis实例。

# redis 客户端已经连接
127.0.0.1:6379> shutdown
not connected> 
# 或者直接在命令行中
# redis-cli shutdown

#服务器端显示
4520:M 02 Dec 09:39:13.300 # User requested shutdown...
4520:M 02 Dec 09:39:13.300 * Saving the final RDB snapshot before exiting.
4520:M 02 Dec 09:39:13.302 * DB saved on disk
4520:M 02 Dec 09:39:13.302 # Redis is now ready to exit, bye bye...

5、redis配置

  在解压的redis源文件中有redis的默认配置文件redis.conf。如果想要更改redis运行的参数,就需要更改这个文件,同时redis运行时需要在第一个参数指定配置文件。

  运行时命令为:redis-server redis.conf 

# 绑定端口。只接受来自这个IP的请求。如果不设置,将接受所有请求。可以配置多个地址
bind 127.0.0.1
# 保护模式。默认开启。当没有绑定IP并且没有设置密码的时候,保护模式起作用,只接受本地地址的请求。
protected-mode yes
# 监听端口,默认是6379,TCP连接
port 6379
# 高并发环境话,对连接的优化参数。并受linux系统内核的影响,需要同时修改内核参数以互相适应
tcp-backlog 511
# 超时时间,单位为秒,客户端超时时间内没有发出任何命令,关闭该连接。0表示禁用该设置。
timeout 0
# 连接保持确定时间。如果确定断开连接需要双倍的时间。有的内核也会影响这个参数。
# 据说合理值是300秒。这个选项从redis 3.2.1开始设置。
tcp-keepalive 300
# 默认情况下,redis不是后台运行的,如果需要后台运行,需要把该项设置为yes
daemonize no
# 定义是upstart还是systemd接管redis进程
supervised no
# 配置后台运行时,redis会生成pid文件,如果不进行配置,默认放置在/var/run/redis.pid下。运行多个redis服务时,需要指定不同的pid文件和端口
pidfile /var/run/redis_6379.pid
# 配置记录log的等级。分为四个等级,debugverbose
oticewarining
loglevel notice
# 配置log文件地址,设置为空时,将日志打印在屏幕上。如果设置为空且设置了后台运行,则将日志发送至/dev/null
logfile ""
# 设置数据库个数。使用命令“SELECT <dbid>”切换数据库,默认数据库是DB 0
databases 16
# 设置保存频率,条目格式为:save <seconds> <changes>
# 默认配置的含义是这样的:
#900秒内有一个key发生了变化就进行保存
#300秒内有10个key发生了变化就进行保存
#60秒内有10000个key发生了变化就进行保存
# 只要符合以上条件就进行保存
save 900 1
save 300 10
save 60 10000
# 后台保存至磁盘发生错误时禁止再对redis进行写操作,否则会产生影响。
# 如果后台保存又恢复正常,redis会自动的允许写操作
# 如果有自己的监控,可以关闭这个选项,以达到更好的交互性
stop-writes-on-bgsave-error yes
# 进行备份时,是否进行压缩
rdbcompression yes
# 是否进行检查校验码
rdbchecksum yes
# 备份文件的镜像名
dbfilename dump.rdb
# redis的工作目录。redis会把备份文件也放入到这个工作目录
dir ./
# 设置该数据库为其它数据库的从数据库,默认不启用
# slaveof <masterip> <masterport>
# 如果连接主数据库时需要密码验证,这里指定密码。默认不启用。
# masterauth <master-password>
# 设置从数据库对客户端写入的处理方式。
# 如果设置为“yes”未完全同步的时候也可以提供客户端连接并操作
# 如果设置为“no”时,则只返回错误,除了IINFO和SLAVEOF
slave-serve-stale-data yes
# 从数据库是否是只读属性。
slave-read-only yes
# 是否启用无磁盘复制,即直接通过网络进行复制。这个功能目前还在实验阶段
repl-diskless-sync no
# 启用无磁盘复制时,配置传输开始的延时时间
repl-diskless-sync-delay 5
#在slave和master同步后(发送psync/sync),后续的同步是否设置成TCP_NODELAY。如果设置成yes,则redis会合并小TCP包节省带宽,但会增加延迟。如果设置成no,则redis master会立即发送同步数据,延迟减小,但会增加带宽占用。
repl-disable-tcp-nodelay no
# 从数据库的优先级,数字越小优先级越高。如果主数据库不工作,数字最小的从数据库接替为主数据库。但是数字0代表不会成为主数据库。
slave-priority 100
# 设置密码。客户端连接后进行操作之前需要使用“AUTH <PASSWORD>”进行验证之后再进行操作。
#因为redis速度非常快,所以一个外部用户可以一秒钟进行150K次的密码尝试,这意味着如果你对外发布你的redis服务器,你需要一个强壮的密码防止暴力破解。
# requirepass foobared
#重命名某个比较敏感的命令,使这个命令不能被外部命令利用,如CONFIG。
#但是这个配置不适合普通用户并且可能会引起从数据库传输等的一些问题。
# rename-command CONFIG ""
# 限制同时连接的客户端数量。超过数量将不再接受新的请求并返回错误信息。
# maxclients 10000
# 设置redis能够使用的最大内存。当内存满了的时候,根据maxmemory-policy进行删除key,当无法再删除时,返回错误信息。
# maxmemory <bytes>
# 内存删除规则。默认是noeviction方式
# maxmemory-policy noeviction
# 默认情况下,后台异步的把数据备份到磁盘,但是这个备份十分耗时切不能很频繁,如果发生意外,则会丢失一段时间的数据。如果开启append only模式,redis会把接收到的每一次写操作都追加到appendonly.aof中。
appendonly no
# append only文件的名字,默认为appendonly.aof
appendfilename "appendonly.aof"
# 设置对append only文件进行同步的频率。always表示每次有写操作都进行同步,everysec表示对写操作进行累积,每秒同步一次。
# 设置在rewrite的时候是否对新的写操作进行fsync。no表示进行fsync
no-appendfsync-on-rewrite no
# 当append only文件增长了这个比例(这里是增加了一倍),则后台rewrite自动运行
auto-aof-rewrite-percentage 100
# 进行后面rewrite要求的最小AOF文件大小。这两个选项共同决定了后面rewrite进程是否到达运行的时机
auto-aof-rewrite-min-size 64mb
# 当aof文件被损坏时,redis将返回错误并退出
aof-load-truncated yes
# LUA scripts最大执行时间,单位(毫秒),超出后返回查询错误并写日志
lua-time-limit 5000
# 开启redis集群
# cluster-enabled yes
# 集群节点配置文件名。不主动手动修改,但是需要确保每一个节点配置文件名不同。
# cluster-config-file nodes-6379.conf
# 节点连接超时时间
# cluster-node-timeout 15000
# 主从数据库无法建立联系的时间倍数
cluster-slave-validity-factor 10
# 主数据库需要保留最少从服务器个数。这时其它从服务器能够灾备迁移到其它主服务器,否则不允许进行迁移。
cluster-migration-barrier 1
# 集群是否需要全量覆盖
# cluster-require-full-coverage yes
# 执行超过多少毫秒的会被记录在慢日志上
slowlog-log-slower-than 10000
# 设置保存多少条慢日志
slowlog-max-len 128
# 延时监控
latency-monitor-threshold 0
# 键空间通知,为空关闭功能
notify-keyspace-events ""
# hash对象开始存储的时候使用ziplist进行存储
# 只有达到一定的范围时
hash-max-ziplist-entries 512 hash-max-ziplist-value 64 # 列表编码方式 list-max-ziplist-size -2 # 列表压缩方式,0代表不进行压缩 list-compress-depth 0 # 集合的特殊编码形式 set-max-intset-entries 512 # 有序集合设置 zset-max-ziplist-entries 128 zset-max-ziplist-value 64 # 开启后,每100毫秒有1毫秒对hash表进行重新hash activerehashing yes # 客户端缓冲区限制 client-output-buffer-limit normal 0 0 0 client-output-buffer-limit slave 256mb 64mb 60 client-output-buffer-limit pubsub 32mb 8mb 60 # 设置redis程序命令执行频率 hz 10 # rewrite过程中,每32M数据进行一次文件同步,这样可以减少"aof大文件"写入对磁盘的操作次数 aof-rewrite-incremental-fsync yes
原文地址:https://www.cnblogs.com/cdinc/p/6120865.html