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

新人一枚,不对之处,请多指教!

 

首先登陆Linux服务器

linux查询Redis占用的db linux如何查看redis存储数据_Redis

 

Linux里,我习惯将程序安装在/usr/local 目录下,所以先cd到该目录下

  • cd /usr/local

linux查询Redis占用的db linux如何查看redis存储数据_linux查询Redis占用的db_02

 

下载redis压缩包(所有操作以回车进行,下同)

linux查询Redis占用的db linux如何查看redis存储数据_Redis_03

 

确认redis压缩包是否下载成功,查看当前目录下的所有文件

  • ls -al

linux查询Redis占用的db linux如何查看redis存储数据_客户端_04

 

如果下载成功

  • 解压:tar xzf redis-5.0.5.tar.gz
  • 查看是否解压出了对应文件:ls -al

linux查询Redis占用的db linux如何查看redis存储数据_redis_05

 

进入解压出的目录

  • cd redis-5.0.5

linux查询Redis占用的db linux如何查看redis存储数据_linux查询Redis占用的db_06

 

安装

  • make

linux查询Redis占用的db linux如何查看redis存储数据_linux查询Redis占用的db_07

 

make完后,进入当前src 目录下,会有redis服务端程序redis-server和用于测试的客户端程序redis-cli,cd进src,并查看

  • cd src
  • ls -al

linux查询Redis占用的db linux如何查看redis存储数据_redis_08

linux查询Redis占用的db linux如何查看redis存储数据_redis_09

 

配置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

linux查询Redis占用的db linux如何查看redis存储数据_客户端_10

 

将当前目录下的redis.conf配置文件,复制到刚刚创建的etc文件里,并查看etc文件夹

  • cp /usr/local/redis-5.0.5/redis.conf /usr/local/redis-5.0.5/etc
  • ls -al

linux查询Redis占用的db linux如何查看redis存储数据_客户端_11

 

编辑etc文件夹里的redis.conf配置文件,将里面的daemonize no 改成daemonize yes,即将redis设为后台启动

  • vi redis.conf

linux查询Redis占用的db linux如何查看redis存储数据_linux查询Redis占用的db_12

 

按下斜杠/,然后输入daemon,回车进行搜索,就会快速跳到需要修改的地方

linux查询Redis占用的db linux如何查看redis存储数据_redis_13

linux查询Redis占用的db linux如何查看redis存储数据_redis_14

 

输入i,页面会变成编辑模式

linux查询Redis占用的db linux如何查看redis存储数据_客户端_15

 

移动光标到no处,将no改成yes

linux查询Redis占用的db linux如何查看redis存储数据_Redis_16

 

然后按esc键退出编辑模式,再然后按shift+:(英文冒号),然后输入wq,回车,就保存并退出了

linux查询Redis占用的db linux如何查看redis存储数据_客户端_17

 

设置连接redis数据库的密码(修改redis.conf文件)

redis数据库默认不设密码,但这样会自动开启保护模式,只能本地访问,不能远程访问。所以为了能远程访问,就必须设置密码。

跟上一步修改守护进程配置一样,先进入redis.conf文件vi redis.conf

linux查询Redis占用的db linux如何查看redis存储数据_Redis_18

输入/requirepass foobared,然后回车,找到设置密码的地方#requirepass foobared

linux查询Redis占用的db linux如何查看redis存储数据_Redis_19

linux查询Redis占用的db linux如何查看redis存储数据_Redis_20

输入i,进入编辑模式,在下面添加一行requirepass 123,设置访问密码为123,退出编辑模式、保存即可

linux查询Redis占用的db linux如何查看redis存储数据_linux查询Redis占用的db_21

 

启动redis,并指定使用的配置文件

  • /usr/local/redis-5.0.5/src/redis-server /usr/local/redis-5.0.5/etc/redis.conf

linux查询Redis占用的db linux如何查看redis存储数据_redis_22

 

启动成功后,查看redis是否在运行

  • ps aux | grep redis

linux查询Redis占用的db linux如何查看redis存储数据_redis_23

 

在/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

linux查询Redis占用的db linux如何查看redis存储数据_数据库_24

 

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

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

linux查询Redis占用的db linux如何查看redis存储数据_linux查询Redis占用的db_25

 

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

linux查询Redis占用的db linux如何查看redis存储数据_客户端_26

 

安装成功后,可以在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:数据库工作目录。

linux查询Redis占用的db linux如何查看redis存储数据_Redis_27

 

修改redis数据库可占用的最大内存(重启后会恢复,改conf文件重启后就不会恢复)

  • 先获取当前可占用的最大内存(必须先获取,再设置):config get maxmemory
  • 设置可占用最大内存为300M(必须转为byte):config set maxmemory 314572800 //也可以在redis.conf配置文件中修改

linux查询Redis占用的db linux如何查看redis存储数据_数据库_28

 

设置过期策略

设置了可占用的最大内存后,一般都要设置过期策略。因为当内存使用达到上限后,数据库就会报错:OOM command not allowed when used memory > ‘maxmemory’,所以需要设置过期策略,通过LRU算法(LRU是Least Recently Used 近期最少使用算法)来删除部分key,释放空间。

  • 查看下当前过期策略的设置:config get maxmemory-policy
  • 设置需要的过期策略:config set maxmemory-policy volatile-lru //也可以在redis.conf配置文件中修改

volatile-lru -> 根据LRU算法生成的过期时间来删除。

volatile-random -> 根据过期设置来随机删除key。

volatile-ttl -> 根据最近过期时间来删除(辅以TTL)

allkeys-lru -> 根据LRU算法删除任何key。

allkeys->random -> 无差别随机删。

noeviction -> 谁也不删,内存达到上限后,直接在写操作时返回错误。(默认就是这个过期策略)

linux查询Redis占用的db linux如何查看redis存储数据_linux查询Redis占用的db_29

 

修改端口

 

查看redis数据库状态

  • 查看所有相关状态:info
  • 查看内存使用状态:info memory

linux查询Redis占用的db linux如何查看redis存储数据_linux查询Redis占用的db_30

linux查询Redis占用的db linux如何查看redis存储数据_linux查询Redis占用的db_31

 

关闭redis

  • 进入/usr/local/redis-5.0.5/src目录:cd /usr/local/redis-5.0.5/src
  • 输入:./redis-cli shutdown

 

卸载redis

  • 删除/usr/local/redis-5.0.5/etc下的配置文件redis.conf:rm -rf /usr/local/redis-5.0.5/etc/redis.conf  //-rf表示不管文件夹下有没有内容,强制删除
  • 删除安装文件夹:rm -rf /usr/local/redis-5.0.5
  • 删除下载的压缩包:rm -rf /usr/local/redis-5.0.5.tar.gz

 

 

 

参考文档:

1、https://blog.51cto.com/4687975/2148125

2、http://linux.zhizuobiao.com/linux-19051400034/