关于redis:虚拟机中centos7安装使用redis

12次阅读

共计 8276 个字符,预计需要花费 21 分钟才能阅读完成。

Redis DeskTop Manage 是 redis 的一款可视化管理工具,那么如何连贯到虚拟机(centos7 为例)的 redis 服务器呢?

装置虚拟机 redis 环境

  • 关上 redis 官网,点击 download,能够看到如下下载教程,能够抉择下载安装包,也能够抉择命令下载,我这里抉择后者

wget http://download.redis.io/releases/redis-6.0.8.tar.gz

  • 解压

tar xzf redis-6.0.8.tar.gz

  • 进入解压后的目录开始装置

cd redis-6.0.8

  • 在装置前须要确认 gcc 是否装置gcc -v, 因为是用 c ++ 写的,所以 make 前须要装置 gcc 或者降级 gcc

yum install gcc-c++

  • 前提是曾经进入到理解压后的 redis-6.0.8 目录,进行装置,默认装置完的目录是 /usr/local/bin

make

装置后进入 /usr/local/bin 目录查看,这里的 config 文件夹是我前面手动创立的mkdir config,用来搁置我的 redis 配置文件

  • 把解压后的 redis-6.0.8 文件夹内的 redis.config 文件复制到咱们刚创立的装置后的目录下的 config 文件夹内

cd /usr/local/bin/
cp /home/parallels/redis-6.0.8/redis.conf congig

redis 配置文件

## 在 redis 中, 非法的 "尺寸单位", 无大小写辨别.
# 1k => 1000 bytes
# 1kb => 1024 bytes
# 1m => 1000000 bytes
# 1mb => 1024*1024 bytes
# 1g => 1000000000 bytes
# 1gb => 1024*1024*1024 bytes
## 将 redis 是否当前台过程的形式运行, 默认为 "no"
**daemonize** no
## 如果 "daemonize yes", 那么将会把过程 id 信息写入文件中. 请留神: 启动 redis 过程的用户须要具备写入此目录的权限.
##pidfile ~/redis.pid
## 指令操作:./redis.server --daemonize yes --pidfile ~/redis.pid
##
**pidfile** /var/run/redis.pid
## 指定 server 须要侦听的客户端连贯端口,client 与 server 在此端口进行 TCP 通信.
**port** 6379
## 如果你的物理服务器有多个网络接口, 请你为将 server socket 绑定在指定 IP 上.
# **bind** 127.0.0.1
# 指定 socket 连贯闲暇工夫(秒). 如果 connection 闲暇超时, 将会敞开连贯(TCP socket 选项)

## 如果为 0, 示意永不超时.
**timeout** 0
## 指定 TCP 连贯是否为长连贯,"侦探" 信号有 server 端保护, 长连贯将会额定的减少 server 端的开销(TCP socket 选项)
## 默认为 0. 示意禁用, 非 0 值示意开启 "长连贯";"侦探" 信号的发送距离将有 linux 零碎决定

## 在屡次 "侦探" 后, 如果对等端 (客户端 socket) 仍不回复, 将会敞开连贯, 否则连贯将会被放弃开启.
##client 端 socket 也能够通过配置 keepalive 选项, 开启 "长连贯".(单位:秒)**tcp-keepaliv**e 0
##server 日志级别, 非法值:debug,verbose,notice,warning 默认为 notice
##debug 适宜开发环境, 客户端操作信息都会输入日志
##verbose 输入一些绝对有用的信息, 目前成果不明
##notice 适宜生产环境
##warning 异样信息
**loglevel** notice
## 指定 redis 日志文件目录, 默认为 stdout
##logfile ~/redislog.log
**logfile** stdout
## 设定 redis 所容许的最大 "db 簇" 的个数, 默认为 16 个簇.
## 客户端能够通过 "select" 指令指定须要应用的 "db 簇" 索引号, 默认为 0.
##redis 的顶层数据结构中, 所有 K - V 都潜在的包含了 "db 簇" 索引号, 任何一个 key 都将隶属于一个 "db".
## 任何对数据的检索, 只会笼罩指定的 "db"; 例如数据被插入到 "db 10" 中, 那么在 "db 1" 中去 get, 将会返回 null.
## 对数据归类到不同的 db 簇中, 能够帮忙咱们实现一些特定的需要, 比方依据不同客户端连贯, 来指定不同的 db 索引号.
**databases** 16
##snapshot 配置,save <seconds> <changes>, 用来形容 "在多少秒期间至多多少个变更操作" 触发 snapshot
##snapshot 最终将生成新的 dump.rdb 文件
##save "" 用来禁用 snapshot 性能
## 如下示意 12 小时内至多一个 key 变更, 触发 snapshot
**save** 43200 1
## 如果 snapshot 过程中呈现谬误, 即数据长久化失败, 是否终止所有的客户端 write 申请.
## 这个选项很让人尴尬,"yes" 示意终止, 一旦 snapshot 故障, 那么此 server 为只读服务;

## 如果为 "no", 那么此次 snapshot 将失败, 但下一次 snapshot 不会受到影响, 不过如果呈现故障, 数据只能复原到 "最近一个胜利点".
**stop-writes-on-bgsave-error** yes
## 是否启用 rdb 文件压缩伎俩, 默认为 yes.

## 压缩可能须要额定的 cpu 开销, 不过这可能无效的减小 rdb 文件的大小, 有利于存储 / 备份 / 传输 / 数据恢复.
**rdbcompression** yes
## 是否对 rdb 文件应用 CRC64 校验和, 默认为 "yes", 那么每个 rdb 文件内容的开端都会追加 CRC 校验和.
## 对于其余第三方校验工具, 能够很不便的检测文件的完整性
**rdbchecksum** yes
## 指定 rdb 文件的名称
**dbfilename** dump.rdb
## 指定 rdb/AOF 文件的目录地位
**dir** ./
# 将以后 server 做为 slave, 并为其指定 master 信息.
# **slaveof** <masterip> <masterport>

## 以后 server 的受权明码

## 任何客户端或者 slave 与此 server 交互前, 须要提交明码, 其余 server 的 masterauth 配置和此参数值保持一致
## 明码应该足够简单(64 字节)
# **requirepass** <foobared>

## 以认证的形式连贯到 master. 如果 master 中应用了 "密码保护",slave 必须交付正确的受权明码, 能力连贯胜利
## "requirepas" 配置项指定了以后 server 的明码.

## 此配置项中 <master-password> 值须要和 master 机器的 "requirepas" 保持一致。此参数配置在 slave 端。# **masterauth** <master-password>
## 如果以后 server 是 slave, 那么当 slave 与 master 失去通信时, 是否持续为客户端提供服务,"yes" 示意持续,"no" 示意终止.
## 在 "yes" 状况下,slave 持续向客户端提供只读服务, 有可能此时的数据曾经过期.
## 在 "no" 状况下, 任何向此 server 发送的数据申请服务 (包含客户端和此 server 的 slave) 都将被告知 "error"
**slave-serve-stale-data** yes
##slave 是否为 "只读", 强烈建议为 "yes"
**slave-read-only** yes
##slave 向指定的 master 发送 ping 音讯的工夫距离(秒), 默认为 10
# **repl-ping-slave-period** 10
##slave 与 master 通信中, 最大闲暇工夫, 默认 60 秒. 超时将导致连贯敞开.
# **repl-timeout** 60
##slave 与 master 的连贯, 是否禁用 TCP nodelay 选项.
##"yes" 示意禁用, 那么 socket 通信中数据将会以 packet 形式发送(packet 大小受到 socket buffer 限度),
##       能够进步 socket 通信的效率(tcp 交互次数), 然而小数据将会被 buffer, 不会被立刻发送, 对于接受者可能存在提早.
##"no" 示意开启 tcp nodelay 选项, 任何数据都会被立刻发送, 及时性较好, 然而效率较低
## 倡议为 "no"
**repl-disable-tcp-nodelay** no
## 实用 Sentinel 模块(unstable,M- S 集群治理和监控), 须要额定的配置文件反对
##slave 的权重值, 默认 100. 当 master 生效后,Sentinel 将会从 slave 列表中找到权重值最低 (>0) 的 slave, 并晋升为 master
## 如果权重值为 0, 示意此 slave 为 "观察者", 不参加 master 选举
**slave-priority** 100
## 重命名指令, 对于一些与 "server" 管制无关的指令, 可能不心愿近程客户端 (非管理员用户) 链接随便应用,
## 那么就能够把这些指令重命名为 "难以浏览" 的其余字符串.
## 例如 "slaveof"   "CONFIG"   "BGREWRITEAOF"   "BGREWRITE"   "FLUSHALL" 等指令须要被限度拜访

## 配置项格局: rename-command <command> <newCommand>
# **rename-command** CONFIG 3ed984507a5dcd722aeade310065ce5d    (形式:MD5('CONFIG^!'))
## 所容许的客户端连接数, 默认为 10000.
## 此值不可能被设置成过大, 因为每个 socket 连贯都会以 "文件描述符" 的形式被零碎关上, 它受到零碎 "文件关上个数" 的限度
## 如果超过此值,server 将会回绝连贯.
# **maxclients** 10000
##redis-cache 所能应用的最大内存(bytes), 默认为 0, 示意 "无限度", 最终由 OS 物理内存大小决定(如果物理内存不足, 有可能会应用 swap)
## 如果此值设置过小(比方 32 字节), 将间接导致 server 无奈应用.
## 此值尽量不要超过机器的物理内存尺寸, 从性能和施行的角度思考, 能够为物理内存 3 /4.
## 此配置须要和 "maxmemory-policy" 配合应用, 当 redis 中内存数据达到 maxmemory 时, 触发 "革除策略".
## 如果应用 "革除策略" 后, 仍无奈失去足够的内存来存储新的数据, 那么 write 操作的客户端将会收到 "error OOM.." 信息, 此时 server 只读.
## 在 "内存不足" 时, 任何 write 操作 (比方 set,lpush 等) 都会触发 "革除策略" 的执行.
## 在理论环境中, 倡议 redis 的所有物理机器的硬件配置保持一致(内存统一), 同时确保 master/slave 中 "maxmemory""policy" 配置统一
# **maxmemory** <bytes>
##"内存不足" 时, 数据革除策略, 默认为 "volatile-lru"
## _volatile-lru_    -> 对 "过期汇合" 中的数据采取 LRU(近期起码应用)算法. 如果对 key 应用 "expire" 指令指定了过期工夫, 那么此 key 将会被增加到 "过期汇合" 中.

## 每个 Redis 对象,都保留一个“最初拜访工夫”的属性,能够用来判断此对象闲暇的工夫,那么 LRU 算法就能够依据此属性来进行判断。## 将曾经过期 /LRU 的数据优先移除. 如果 "过期汇合" 中全副移除仍不能满足内存需要, 将 OOM.
## _allkeys-lru_ -> 对所有的数据, 采纳 LRU 算法
## _volatile-random_ -> 对 "过期汇合" 中的数据采取 "随即选取" 算法, 并移除选中的 K -V, 直到 "内存足够" 为止.
## 如果如果 "过期汇合" 中全副移除全副移除仍不能满足, 将 OOM
## _allkeys-random_ -> 对所有的数据, 采取 "随即选取" 算法, 并移除选中的 K -V, 直到 "内存足够" 为止.
## _volatile-ttl_ -> 对 "过期汇合" 中的数据采取 TTL 算法(最小存活工夫), 移除行将过期的数据.
## _noeviction_ -> 不做任何烦扰操作, 间接返回 OOM 异样.
###
## 如果数据的过期不会对 "利用零碎" 带来异样, 且零碎中 write 操作比拟密集, 倡议采取 "_**allkeys-lru**_"
# **maxmemory-policy** volatile-lru
## 是否开启 aof 性能,"yes" 示意开启, 在开启状况下,aof 文件同步性能才失效, 默认为 "no"
## 对 master 机器, 倡议应用 AOF, 对于 slave, 倡议敞开(采纳 snapshot),
**appendonly** no

##aof 中文件同步机制
## _always_ -> 任何一个 aof 记录都立刻进行文件同步(磁盘写入), 安全性最高; 如果 write 申请比拟密集, 将会造成较高的磁盘 IO 开销和响应提早
## _everysec_ -> 每秒同步一次, 性能和安全性都较高的策略, 也是默认值
## _no_ -> 不间接同步, 让文件同步交给 OS 管制,OS 将会依据文件流通道中 buffer 状况 / 闲暇状况进行择机写入磁盘. 安全性和效率与 OS 设定无关.
**appendfsync** everysec
## 在 aof rewrite 期间, 是否对 aof 新记录的 append 暂缓应用文件同步策略, 次要思考磁盘 IO 开销和申请阻塞工夫.
## 默认为 no, 示意 "不暂缓", 新的 aof 记录依然会被立刻同步
##
**no-appendfsync-on-rewrite** no
##aof rewrite 触发机会, 最小文件尺寸
**auto-aof-rewrite-min-size** 64mb

##aof 每次 rewrite 之后, 都会记住以后 aof 文件的大小, 当文件增长到肯定比例后, 持续进行 aof rewrite
**auto-aof-rewrite-percentage** 100
##aof rewrite 过程中, 是否采取增量 "文件同步" 策略, 默认为 "yes", 而且必须为 yes.
##rewrite 过程中, 每 32M 数据进行一次文件同步, 这样能够缩小 "aof 大文件" 写入对磁盘的操作次数.
**aof-rewrite-incremental-fsync** yes
##lua 脚本运行的最大工夫
**lua-time-limit** 5000
##"慢操作日志" 记录, 单位: 微秒(百万分之一秒,1000 * 1000), 如果操作工夫超过此值, 将会把 command 信息 "记录" 起来.(内存, 非文件)
## 其中 "操作工夫" 不包含网络 IO 开销, 只包含申请达到 server 后进行 "内存施行" 的工夫."0" 示意记录全副操作.
**slowlog-log-slower-than** 10000
##"慢操作日志" 保留的最大条数,"记录" 将会被队列化, 如果超过了此长度, 旧记录将会被移除.
## 能够通过 "SLOWLOG <subcommand> args" 查看慢记录的信息(SLOWLOG get 10,SLOWLOG reset)
## 通过 "SLOWLOG get num" 指令能够查看最近 num 条慢速记录, 其中包含 "记录" 操作的工夫 / 指令 /K- V 等信息
**slowlog-max-len** 128
## 通过 "TYPE key" 指令查看 key 的数据类型
## 通过 "OBJECT encoding key" 查看 key 的编码类型
##hash 类型的数据结构在编码上能够应用 ziplist 和 hashtable

##ziplist 的特点就是文件存储 (以及内存存储) 所需的空间较小, 在内容较小时, 性能和 hashtable 简直一样. 因而 redis 对 hash 类型默认采取 ziplist.

## 如果 hash 中条目标条目个数或者 value 长度达到阀值, 将会被重构为 hashtable.
##ziplist 中容许存储的最大条目个数, 倡议为 128
**hash-max-ziplist-entries** 512
##ziplist 中容许条目 value 值最大字节数, 倡议为 1024
**hash-max-ziplist-value** 64
## 对于 list 类型, 将会采取 ziplist,linkedlist 两种编码类型.
## 同 hash.
**list-max-ziplist-entries** 512
**list-max-ziplist-value** 64
##zset 为有序汇合, 有 2 中编码类型:ziplist,skiplist

## 因为 "排序" 将会耗费额定的性能, 当 zset 中数据较多时, 将会被重构为 skiplist.
## 同 hash.
**zset-max-ziplist-entries** 128
**zset-max-ziplist-value** 64
##intset 中容许保留的最大条目个数, 如果达到阀值,intset 将会被重构为 hashtable
**set-max-intset-entries** 512
## 是否开启顶层数据结构的 rehash 性能, 如果内存容许, 请开启.
##rehash 可能很大水平上进步 K - V 存取的效率.
**activerehashing** yes
## 客户端 buffer 管制

## 在客户端与 server 进行的交互中, 每个连贯都会与一个 buffer 关联, 此 buffer 用来队列化亟待被 client 承受的响应信息.
## 如果 client 不能及时的生产响应信息, 那么 buffer 将会被一直积压而给 server 带来内存压力. 如果 buffer 中积压的数据达到阀值, 将会
## 导致连贯被敞开,buffer 被移除."
##buffer 管制类型包含:
## _normal_ -> 一般连贯
## _slave_ -> 与 slave 之间的连贯
## _pubsub_ ->pub/sub 类型连贯, 此类型的连贯, 往往会产生此种问题; 因为 pub 端会密集的公布音讯, 然而 sub 端可能生产有余.
## 指令格局:client-output-buffer-limit <class> <hard> <soft> <seconds>", 其中 hard 示意 buffer 最大值, 一旦达到阀值将立刻敞开连贯;
##soft 示意 "容忍值", 它和 seconds 配合, 如果 buffer 值超过 soft 且持续时间达到了 seconds, 也将立刻敞开连贯, 如果超过了 soft 然而在 seconds 之后
##buffer 数据小于了 soft, 连贯将会被保留.
# 其中 hard 和 soft 都设置为 0, 则示意禁用 buffer 管制. 通常 hard 值大于 soft.
**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 server 执行后台任务的频率, 默认为 10, 此值越大示意 redis 对 "间歇性 task" 的执行次数越频繁(次数 / 秒)
##"间歇性 task" 包含 "过期汇合" 检测、敞开 "闲暇超时" 的连贯等, 此值必须大于 0 且小于 500.(参见 redis.h 源码)

## 此值过小就意味着更多的 cpu 周期耗费, 后盾 task 被轮询的次数更频繁

## 此值过大意味着 "内存敏感" 性较差.
## 倡议放弃默认值
**hz** 10
##include 指令用来载入额定的配置文件模板, 也能够在 redis server 启动时, 手动指定须要 include 的配置文件.
# **include** /path/to/local.conf
# include /path/to/other.conf

启动 redis

  • 进入装置后的 redis 目录, 应用脚本运行

cd /usr/local/bin

  • 启动

我这里在配置文件中配置过了明码,所以须要 auth 明码认证

redis desktop 连贯

  • 批改配置文件

1)批改 protected-mode yes 改为:protected-mode no
2)正文掉 #bin 127.0.0.1
3)将 daemonize no 改成 yes
4)设置明码 requirepass 123456

  • 查看虚拟机防火墙配置,须要凋谢端口,能力拜访到这台服务器

能够查看我的上一篇博客

  • 查看虚拟机 IP 地址ifconfig

  • 尝试连贯

  • 点击确定,连贯胜利
正文完
 0