一、Redis介绍
Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,Redis支持各种不同方式的排序。
和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化。
二、Redis的安装
ps:安装前需要检查是否有c环境,输入 gcc -v 查看.如果无环境,执行 yum install gcc,先安装 gcc.
1、首先上官网下载Redis 压缩包,地址:http://redis.io/download 下载。下载的是 redis-5.0.3.tar.gz 版本.
2、通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作,使用的是 MobaXterm,解压后的文件夹路径为
/home/redis-5.0.3
3、进入redis-5.0.3,执行 make ,对解压后文件进行编译.编译完成之后,进入解压后的文件夹中会有对应的src、conf等文件夹,证明解压成功.
4、进入redis-5.0.3/src文件夹,执行 make install 进行Redis安装
三、Redis的部署
安装成功后,下面对Redis 进行部署
1、在redis-5.0.3./src文件夹内执行 redis-server 命令,启动Redis 服务
注意:这里直接执行redis-server 启动的Redis服务,是在前台直接运行的,如果Lunix关闭当前会话,则Redis服务也随即关闭。正常情况下,启动Redis服务需要从后台启动,并且指定启动配置文件。
2、后台启动redis服务
a)首先编辑 redis-5.0.3/redis.conf 文件,将 daemonize 属性改为 yes(表明需要在后台运行)
同文件中将 protected-mode yes 改成 protected-mode no,可视化
b)重启动redis服务,并指定启动服务配置文件
/home/redis-5.0.3/src/redis-server /home/redis-5.0.3/redis.conf
3.开机启动redis
设置redis.conf中属性 daemonize yes
将 redis.conf 复制到 /etc/redis/6379.conf 文件名问端口号,端口号改变文件名需同时改变
复制redis启动脚本,通常在 redis/utils/下. cp /usr/redis/redis-5.0.3/utils/redis_init_script /etc/init.d/redis
打开复制后的启动脚本, vi /etc/init.d/redis
#在文件的头部添加下面两行注释代码,也就是在文件中
#!/bin/sh的下方添加
# chkconfig: 2345 10 90
# description: Start and Stop redis
同时下方的
REDISPORT 6379
EXEC=/user/local/bin/redis-server
CLIEXEC=/user/local/bin/redis-cli
修改为自己redis的服务于客户端启动文件地址
打开redis命令:service redis start
关闭redis命令:service redis stop
设为开机启动:chkconfig redis on
设为开机关闭:chkconfig redis off
四、Redis 操作常用命令
Redis:
[root@localhost src]# redis-server ../redis.conf 启动redis服务,并指定配置文件
[root@localhost src]# redis-cli 启动redis 客户端
[root@localhost src]# redis-cli shutdown 关闭redis客户端
安装过程遇到了一些问题:
make 时报错:
make[1]: [persist-settings] Error 2 (ignored)
CC adlist.o
/bin/sh: cc: command not found
make[1]: *** [adlist.o] Error 127
make[1]: Leaving directory `/home/redis-5.0.3/src'
make: *** [all] Error 2
解决方法:安装gcc
命令如下:yum install gcc
2、文件缺失
make报错:
In file included from adlist.c:34:0:
zmalloc.h:50:31: fatal error: jemalloc/jemalloc.h: No such file or directory
#include <jemalloc/jemalloc.h>
compilation terminated.
make[1]: *** [adlist.o] Error 1
make[1]: Leaving directory `/home/redis-5.0.3/src'
make: *** [all] Error 2
解决方案:
分别进入`/home/redis-5.0.3/deps下的 hiredis、lua 运行make
如果make还有错误,尝试下删除解压缩的redis文件,重新安装.
五.Redis允许远程连接
将 redis.conf 文件中的 bind 127.0.0.1 注释掉,即可远程连接.
远程连接时,如果长时间无响应,可能是防火墙问题.控制台输入(centos7):
firewall-cmd --zone=public --add-port=6379/tcp --permanent //ok 开放redis 6379端口
firewall-cmd --reload //ok 重载防火墙
如果redis已经开启,需要重启.进入redis安装目录下的src,输入 redis-cli shutdown关闭,然后带配置文件重启
redis-server ../redis.config
在做测试,连接成功.
(查看防火墙以开放端口 firewall-cmd --zone=public --list-port)