Linux安装redis数据库
这几天在搞redis数据库,花了好大功夫,才成功安装在Linux上,这里将自己的安装步骤分享出来,同时也做个记录,备忘。
新人一枚,不对之处,请多指教!
首先登陆Linux服务器
Linux里,我习惯将程序安装在/usr/local 目录下,所以先cd到该目录下
- cd /usr/local
下载redis压缩包(所有操作以回车进行,下同)
确认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键退出编辑模式,再然后按shift+:(英文冒号),然后输入wq,回车,就保存并退出了
设置连接redis数据库的密码(修改redis.conf文件)
redis数据库默认不设密码,但这样会自动开启保护模式,只能本地访问,不能远程访问。所以为了能远程访问,就必须设置密码。
跟上一步修改守护进程配置一样,先进入redis.conf文件vi redis.conf
输入/requirepass foobared,然后回车,找到设置密码的地方#requirepass foobared
输入i,进入编辑模式,在下面添加一行requirepass 123,设置访问密码为123,退出编辑模式、保存即可
启动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):config set maxmemory 314572800 //也可以在redis.conf配置文件中修改
设置过期策略
设置了可占用的最大内存后,一般都要设置过期策略。因为当内存使用达到上限后,数据库就会报错: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 -> 谁也不删,内存达到上限后,直接在写操作时返回错误。(默认就是这个过期策略)
修改端口
查看redis数据库状态
- 查看所有相关状态:info
- 查看内存使用状态:info memory
关闭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/