redis安装时常见报错解决方法

参照官网描述(https://redis.io/download),linux下redis安装步骤如下:
$ wget http://download.redis.io/releases/redis-3.2.9.tar.gz
$ tar xzf redis-3.2.9.tar.gz
$ cd redis-3.2.9
$ make 或者 make install PREFIX=安装目录

上述流程依次代表,下载redis --> 解压 --> 进入解压目录 --> 编译源码
多数情况下,执行make时,可能会出现如下错误:
在这里插入图片描述
异常一:
make[2]: cc: Command not found
异常原因:没有安装gcc
解决方案:yum install gcc-c++

在这里插入图片描述
异常二:
zmalloc.h:51:31: error: jemalloc/jemalloc.h: No such file or directory
异常原因:一些编译依赖或原来编译遗留出现的问题
解决方案:make distclean。清理一下,然后再make。

在make成功以后,需要make test。在make test出现异常。
在这里插入图片描述
异常一:
couldn’t execute “tclsh8.5”: no such file or directory
异常原因:没有安装tcl
解决方案:yum install -y tcl。
到此,redis安装完成。

若是通过:make install PREFIX=安装目录, 完成安装的,会在安装目录下生成一个bin目录,bin目录下包含如下可执行文件:
在这里插入图片描述
redis-benchmark : 用于测试redis的性能。
redis-check-aof : 当aof备份文件被损坏,可通过该工具对aof文件进行修复,使用方式:redis-check-aof --fix 要修复的aof文件。
redis-check-rdb : 修复损坏的rdb备份文件。
redis-cli : redis客户端,用于连接服务端。
redis-server : redis服务器端,用于启动redis服务器。
redis-sentinel : 哨兵模式(实际使用较多) 在master-slave模式下(slave默认不支持写),当master出现异常时,自动在slave中选择一台作为master。

连接上redis服务器后,可通过指令“info”查看redis服务器信息,也可查看服务器知道内容信息,例如:info replication 查看主从相关信息

下面介绍几个redis常用配置项(redis.cnf配置文件中配置)
1、bind 127.0.0.1 配置redis服务器接受链接的网卡(非客户端ip,而是服务器端ip,服务器可能包含多个网卡)
2、protected-mode yes redis以保护模式运行,只接受本地链接,不能外网访问
3、port 6379 redis接受链接端口
4、daemonize no redis是否后台运行,若为yes,客户端窗口将被锁定
重要配置项
5、maxmemory redis最大使用内存
6、maxmemory-policy 内存达到最大值时的驱逐策略

redis数据持久化支持两种模式:RDB和AOF
RDB:rdb方式的持久化是通过快照完成的,当符合一定条件时redis会自动将内存中的所有数据执行快照操作并存储到硬盘上。默认存储在redis根目录的dump.rdb文件中。(文件名在配置文件中dbfilename)

redis进行快照的时机(在配置文件redis.conf中)
  save 900 1:表示900秒内至少一个键被更改则进行快照。
  save 300 10
  save 60 10000

dbfilename dump.rdb 快照保存文件名
dir ./ 快照保存地址

也可通过redis客服端执行命令save或者bgsave保存快照:
 两个命令的区别在于,save是由主进程进行快照操作,会阻塞其它请求。bgsave是由redis执行fork函数复制出一个子进程来进行快照操作。
文件修复:redis-check-dump
rdb的优缺点
优点:由于存储的有数据快照文件,恢复数据很方便。
缺点:会丢失最后一次快照以后更改的所有数据。

AOF:
aof方式的持久化是通过日志文件的方式,记录下redis服务器的每一条修改指令。默认情况下redis没有开启aof,可以通过参数appendonly参数开启。
appendonly yes
aof文件的保存位置和rdb文件的位置相同,都是dir参数设置的,默认的文件名是appendonly.aof,可以通过 appendfilename参数修改
appendfilename appendonly.aof
redis写命令同步的时机:
   appendfsync always 每次都会执行
  appendfsync everysec 默认 每秒执行一次同步操作(推荐,默认)
  appendfsync no不主动进行同步,由操作系统来做,30秒一次

redis服务器启动时会读取appendonly.aof中的指令,进行执行,这样便保证了重启后数据不会丢失。

注意:当redis启动时,如果rdb持久化和aof持久化都打开了,那么程序会优先使用aof方式来恢复数据集,因为aof方式所保存的数据通常是最完整的。

最后记录下redis服务器的启动与关闭指令:
  [root@localhost src]# ./redis-server …/redis.conf 启动redis
  [root@localhost src]# ./redis-cli shutdown 关闭redis

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值