这几天在搞 redis 数据库,花了好大功夫,才成功安装在 Linux 上,这里将自己的安装步骤分享出来,同时也做个记录,备忘。
登陆 Linux 服务器
Linux 里,我习惯将程序安装在 /usr/local 目录下,所以先 cd 到该目录下
cd /usr/local
下载 redis 压缩包(所有操作以回车进行,下同)
wget http://download.redis.io/releases/redis-5.0.5.tar.gz
确认 redis 压缩包是否下载成功,查看当前目录下的所有文件
ls -al
如果下载成功
# 解压文件
tar xzf redis-5.0.5.tar.gz
# 查看是否解压出了对应文件
ls -al
进入解压出的目录:
cd redis-5.0.5
执行安装命令
make
make 完后,进入当前 src 目录下,会有 redis 服务端程序 redis-server 和用于测试的客户端程序 redis-cli,cd 进 src,并查看。
cd src
ls -al
配置 redis.conf 文件,将 redis 设为后台运行。
redis 默认不是守护进程,也就是说只要在 linux 上做了其他操作、或者 exit 强制退出、或者关闭连接工具(putty/xshell)等,都会导致 redis 进程退出,这样非常的麻烦,所以需要让 redis 服务端在后台运行,即守护进程模式。
当 redis.conf 配置文件中,daemonize 属性值设为 yes 时,代表开启守护进程。
# 退回上级目录
cd ..
# 创建etc文件夹(不退回上级目录也行,可以放到其他目录,但为了便于管理,建议放到上级目录中)
mkdir /usr/local/redis-5.0.5/etc
# 查看是否创建成功
ls -al
将当前目录下的 redis.conf 配置文件,复制到刚刚创建的 etc 文件里,并查看 etc 文件夹。
cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis-5.0.5/etc
ls -al
编辑 etc 文件夹里的 redis.conf 配置文件,将里面的 daemonize no 改成 daemonize yes,即将 redis 设为后台启动。
vi redis.conf
按下斜杠 /,然后输入 daemon,回车进行搜索,就会快速跳到需要修改的地方。
输入 i,页面会变成编辑模式
移动光标到 no 处,将 no 改成 yes
然后按 esc 键退出编辑模式,然后输入 :wq 回车,就保存并退出了。
设置连接 redis 数据库的密码(修改 redis.conf 文件)
redis数据库默认不设密码,但这样会自动开启保护模式,只能本地访问,不能远程访问。所以为了能远程访问,就必须设置密码。
跟上一步修改守护进程配置一样,先进入 redis.conf 文件。
vi redis.conf
输入 /requirepass foobared,然后回车,找到设置密码的地方 #requirepass foobared
输入 i,进入编辑模式,在下面添加一行 requirepass 123,设置访问密码为 123。
然后按 esc 键退出编辑模式,然后输入 :wq 回车,就保存并退出了。
启动 redis,并指定使用的配置文件
/usr/local/redis-5.0.5/src/redis-server /usr/local/redis-5.0.5/etc/redis.conf
启动成功后,查看 redis 是否在运行
ps aux | grep redis
在 /usr/local/redis-5.0.5/src 目录下启动 redis 客户端,测试和服务端的交互,启动成功后,下面会出现 IP地址和端口号:127.0.0.1:6397
./redis-cli -h 127.0.0.1 -p 6379 -a 123
这时候开始测试客户端与服务端的交互
至此,redis 数据库安装成功,输入 quit 或按 Ctrl+c 可退出客户端模式。
安装成功后,可以在 redis 客户端里,查看数据库的所有配置信息。
# 启动redis客户端
./redis-cli
config get *
修改 redis 数据库可占用的最大内存(重启后会恢复,改 conf 文件重启后就不会恢复)
# 先获取当前可占用的最大内存(必须先获取,再设置)
config get maxmemory
# 设置可占用最大内存为300M,必须转为 byte(也可以在 redis.conf 配置文件中修改)
config set maxmemory 314572800
设置了可占用的最大内存后,一般都要设置过期策略。
因为当内存使用达到上限后,数据库就会报错:OOM command not allowed when used memory > ‘maxmemory’,所以需要设置过期策略,通过 LRU 算法(LRU 是 Least Recently Used 近期最少使用算法)来删除部分 key,释放空间。
# 查看下当前过期策略的设置
config get maxmemory-policy
# 设置需要的过期策略(也可以在 redis.conf 配置文件中修改)
config set maxmemory-policy volatile-lru //
# 查看所有相关状态
info
# 查看内存使用状态
info memory
# 进入 /usr/local/redis-5.0.5/src 目录
cd /usr/local/redis-5.0.5/src
# 如果没有启用密码保护,直接输入
./redis-cli shutdown
# 如果 Redis 启用了密码保护,需要这样关闭 redis
./redis-cli # 先启动 redis 客户端
auth 123 # 输入密码
shutdown # 执行关闭 redis 的命令
# 删除 /usr/local/redis-5.0.5/etc 下的配置文件 redis.conf
rm -rf /usr/local/redis-5.0.5/etc/redis.conf
# 删除安装文件夹
rm -rf /usr/local/redis-5.0.5
# 删除下载的压缩包
rm -rf /usr/local/redis-5.0.5.tar.gz