|
主题设置

卡片式面板通常用于非白色背景色的主体内

Linux 安装 Redis

这几天在搞 redis 数据库,花了好大功夫,才成功安装在 Linux 上,这里将自己的安装步骤分享出来,同时也做个记录,备忘。

下载 Redis

登陆 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

这时候开始测试客户端与服务端的交互

  • 从客户端输入键值对:set name test,返回 ok,表示添加成功。
  • 从客户端获取键值对:get name,返回值 test
  • 查看所有键值对:keys *
  • 从客户端删除键值对:del name,返回 1 表示删除成功,删除失败会返回 0

至此,redis 数据库安装成功,输入 quit 或按 Ctrl+c 可退出客户端模式。

配置信息

安装成功后,可以在 redis 客户端里,查看数据库的所有配置信息。

# 启动redis客户端
./redis-cli

config get *
  • dbfilename:数据库文件名,默认为 dumo.rdb
  • requirepass:连接服务器的密码,默认为空。设置密码后,再连接服务器就必须输入密码。
  • logfile:数据库日志的地址及文件名。
  • maxmemroy:redis 可占用的最大内存,默认是 0。如果不进行设置或默认 0,64 位系统表示不限制内存的使用,32 位系统表示最多使用 3GB 内存。
  • timeout:客户端闲置多少秒后关闭与服务器的连接,默认是 0,代表禁止使用该功能,永不关闭。
  • port:数据库使用的端口号
  • databases:当前 redis 服务器有 16 个数据库。
  • maxclients:最大同时连接的客户端数量。
  • daemonize:表示 redis 是否作为守护进程运行,默认为 no,表示以非守护进程运行,改为 yes 后,以守护进程运行。(windows 下不支持以非守护进程运行)
  • dir:数据库工作目录。

修改 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 //
  • volatile-lru -> 根据 LRU 算法生成的过期时间来删除。
  • volatile-random -> 根据过期设置来随机删除 key。
  • volatile-ttl -> 根据最近过期时间来删除(辅以TTL)
  • allkeys-lru -> 根据 LRU 算法删除任何 key。
  • allkeys->random -> 无差别随机删。
  • noeviction -> 谁也不删,内存达到上限后,直接在写操作时返回错误。(默认就是这个过期策略)

修改端口

查看状态

# 查看所有相关状态
info

# 查看内存使用状态
info memory

关闭 Redis

# 进入 /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 的命令

卸载 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