centos7 安装 redis

Redis是nosql,非关系型数据库

key-value数据库,深入了解后你会发现,redis里的数据都是通过key去找,不需要创建什么数据库什么表之类的,非常简单

缓存数据库,Redis将访问频繁的数据放到缓存中,避免了像mysql一样反复连接数据而导致负载过高,而达到读取速度快

由C语言编写,并且是单线程服务器,只有一个线程来响应所有请求

 

安装

yum安装redis时,建议使用Remi repository源。因为Remi源提供了目前最新版本的Redis

 

yum -y install epel-release
yum -y install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum --enablerepo=remi install -y redis  //--enablerepo指定yum源
redis-cli --version  //安装完成后使用命令查看一下版本

 

/etc/redis.conf  为redis的配置文件

//第69行,Redis监听的地址
bind 127.0.0.1
//第88行,安全模式,是否禁止外网访问Redis,yes表示启用,只能通过本地访问
protected-mode yes
//第92行,监听的端口号
port 6379
/*第101行,指定tcp-backlog长度。tcp-backlog是一个等待队列。
* 当大量请求需要Redis处理时,需要等待的请求队列会通过backlog来缓存。
* backlog的数量决定来可以缓存的队列数
*/
tcp-backlog 511
//第109行,指定使用sock文件通信以及sock文件位置。如果服务端和客户端在同一台主机上,建议打开。sock方式通信可以直接在内存中交换,不经过TCP/IP协议栈进行封装、拆封
# unixsocket /tmp/redis.sock
//第110行,定义sock文件的权限
# unixsocketperm 700
//第113行,表示客户端连接成功后,空闲多长时间超时(非活跃,没有数据交互)。0表示不开启此功能
timeout 0
//第130行,维持长链接的时间,单位秒
tcp-keepalive 300
//第136行,是否在后台运行守护进程。如果使用redis服务脚本启动,即使为no,也会运行一个守护进程。一般设置yes
daemonize no
//第147行,是由upstart还是systemd接管redis进程。默认无监督互动,不需要修改。
supervised no
//第158行,pid文件地址
pidfile /var/run/redis_6379.pid
//第166行,日志级别
loglevel notice
//第174行,日志文件位置
logfile /var/log/redis/redis.log
//第186行,默认由多少个数据库。但是在分布式中,只能有一个
databases 16
 
/*第218到220行,快照存储策略,存到磁盘的持久化策略
*第一个数字是单位时间,单位为秒;第二个数字是键值发生变化的次数
* 例如第一个,900秒内至少发生1次键值变化,则做一次快照(持久化)
* 第二个就是,300秒内至少发生10次键值变化,则做一次快照(持久化)
* 所有条件是并列关系,根据不同的键值变化选择使用规则
*/
save 900 1
save 300 10
save 60 10000
//第235行,在进行快照备份时,一旦发生错误是否停止,默认yes即可
stop-writes-on-bgsave-error yes
//第241行,指定RDB文件是否压缩。yes表示压缩,会消耗CPU资源
rdbcompression yes
/*第250行,是否对RDB文件做校验码检测。
*此项定义在redis启动时加载RDB文件是否对文件检查校验码,在redis生成RDB文件是会生成校验信息,在redis再次启动或装载RDB文件时,是否检测校验信息。
*如果检测的情况下会消耗时间,会导致redis启动时慢,但是能够判断RDB文件是否产生错误。
*/
rdbchecksum yes
//第253行,RDB文件名称
 dbfilename dump.rdb
//第263行,RDB文件存放的路径
dir /var/lib/redis
 
//第286行,定义Master服务器的IP和端口,主从复制的配置信息
# replicaof <masterip> <masterport>
//第293行,定义Master服务器的密码,主从复制的配置信息
# masterauth <master-password>
//第308行,当从端在主从复制过程中与主端断开连接,yes表示继续提供服务,即使数据可能不是最新的;no表示对请求返回错误信息
replica-serve-stale-data yes
//第324行,从端只读
replica-read-only yes
//第355行,默认不使用diskless(无磁盘)同步方式
repl-diskless-sync no
//第367行,diskless(无磁盘)方式进行数据传递之前会有一个时间的延迟,以便从端能够进行到待传送的目标队列中,默认5秒
repl-diskless-sync-delay 5
//第373行,从端向主端发送ping的时间间隔,默认10秒
# repl-ping-replica-period 10
//第385行,设置超时时间
# repl-timeout 60
/*第400行,是否启用TCP_NODELAY。
* 如果启用则会使用少量的TCP包和带宽去进行数据传输到从端,速度较慢;
* 如果不启用则使用较多的带宽进行数据传输,速度较快。
*/
repl-disable-tcp-nodelay no
/*第413行,设置backlog的大小。backlog是一个缓冲区,在从端失联时存放要同步到从端的数据。
* 因此当从端重连时,一般是不需要完全同步的。backlog越大,从端可以失联的时间就越长(相对来说)
*/
# repl-backlog-size 1mb
//第426行,一段时间后,从端还没有连上master,那么backlog(缓冲区)的内存将被释放。0表示永不释放,默认3600秒
# repl-backlog-ttl 3600
//第441行,从端的优先级设置,数字越小优先级越高。主端故障会根据优先级高的从端来进行恢复。如果设置的是0,那么该从端永远不会被选中
replica-priority 100
//第457到458行,当主端的可用从端小于3个或网路延迟岛屿10秒时,主端拒绝接收用户的写请求。
# min-replicas-to-write 3
# min-replicas-max-lag 10
 
//第507行,指定认证密码,默认不启动
# requirepass foobared
 
//第539行,同时连接redis的最大数量
# maxclients 10000

特别注意:第69行的bind,第88行的protected-mode,第136行的daemonize,第539行的maxclients,还有主从复制的所有配置参数。

redis 的默认端口是6379

redis-cli是redis 的命令行工具,通过127.0.0.1端口6379连接到服务器,如果未开启 redis,会显示无法连接数据库

redis-cli    #本地连接
redis-cli -h IP地址  -p 端口  #连接外部redis
redis-cli -h 127.0.0.1 -p 6379 -a myPassword  #-a使用密码认证连接

redis命令 (通过redis-cli进入redis后使用的命令)

ping    #用于检测redis服务是否启动
config get *    #获取所有配置项
config get port    #获得端口
config get bind    #获得redis监听的端口

config set port "1234"  #修改端口

 redis命令官方文档:http://redisdoc.com/index.html

posted @ 2021-11-11 19:31  binbin_cloud  阅读(41)  评论(0编辑  收藏  举报