一
、Redis的简介
redis是一个
key-value
存储系统
。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(
链表
)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些
数据类型
都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,
数据都是缓存在内存中
。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave
(主从)同步
。
二、
Redis的下载与安装
注:如果你的Centos系统不自带yum命令和wget命令就执行下面这条指令:
sudo yum upate && yum install wget //在线下载yum命令和wget命令
我一般喜欢将在线下载的软件和文件放到一个固定的路径,例:/root/software
mkdir /root/software //创建目录
cd /root/software //切换目录
wget
wget http://download.redis.io/releases/redis-3.2.1.tar.gz //在线下载redis压缩包
tar -xvf redis-3.2.1.tar.gz //解压redis压缩包
cd redis-3.2.1/ //进入redis目录
make
make install
cd ..
mv redis-3.2.1 /usr/local/redis //将redis文件夹转移
cd /usr/local/redis/src //切换目录
redis-server //启动redis服务
注:此时的Redis-server进程是不能后台运行的,但是我是配置好的,所以下面的redis-cli客户端是可用的,你的肯定是打不开redis-cli客户端的,但是下面我会在redis配置中讲到,放心。
redis-cli -h 127.0..0.1 -p 6379 //启动redis客户端
这样就搞定了Redis的下载与安装,接下来是Redis的配置。
三
、
Redis的配置
首先,带大家看一下reids的配置文件(redis.config)的内容,由于此文件中注释和空行太多,博主将注释和空行去掉并输出其内容:
cat redis.config | grep -v “#” | grep -v “^$”
为了可以让Redis服务器可以在后台运行,我做个小测试,进行如下操作:
1)在redis目录下新建config和data
[root@localhost redis]# mkdir config
[root@localhost redis]# mkdir data
2)在config目录下新建redis-6379.conf
[root@localhost config]# touch redis-6379.conf
3)将redis.conf文件中的非注释非空格部分代码追加到redis_6379.conf中
[root@localhost redis]# cat redis.conf | grep -v "#" | grep -v "^$" > config/redis-6379.conf
4)在redis_6379.conf中修改为:
daemonize yes
port 6379
dir "/usr/local/redis/data"
logfile "6379.log"
注:data目录是日志文件存储的位置
logfile:是日志名称
5)在config目录下开启redis服务
[root@localhost config]# redis-server redis-6379.conf
[root@localhost config]#
6)redis后台启动成功
下面分别讲解一下配置的含义:
1.bind 127.0.0.1
从指定的网络接口(网卡)监听连接请求,比如机器上有2块网卡,你只是指定监听一个网卡上来的请求,默认是所有网卡的请求都监听,所有网卡都会监听到来的连接file中,在/var/run/redis.pid。
2.daemonize no
daemonize:守护进程
Redis默认不是以守护进程的方式运行,可以通过该配置项修改,使用yes启用守护进程。
3.pidfile /var/run/redis.pid
当Redis以守护进程方式运行时,Redis默认会把pid写入/var/run/redis.pid文件,可以通过pidfile指定。
4.port 6379
指定Redis监听端口,默认端口为6379,如果指定0端口,表示Redis不监听TCP连接。
5.timeout 0
当客户端闲置多长时间后关闭连接,如果指定为0,表示关闭该功能。
6.loglevel verbose
指定日志记录级别,Redis总共支持四个级别:debug、verbose、notice、warning,默认为verbose。
7.logfile stdout
日志记录方式,默认为标准输出,如果配置为redis为守护进程方式运行,而这里又配置为标准输出,则日志将会发送给/dev/null。
8.logfile ” ”
redis日志文件的存储路径。
9.databases 16\
设置数据库的数量,默认数据库为0,可以使用select <dbid>命令在连接上指定数据库id。
10.save 900 1 //当900秒执行一个写命令时,启用快照命令
save 300 10 //当300秒执行10个写命令时,启用快照命令
save 60 10000 //当30秒执行10000个写命令时,启用快照命令
save <seconds> <changes>:
11.dbfilename dump.rdb
指定本地数据库文件名,当采用快照模式备份(持久化)时,Redis将使用它保存数据,将来用以恢复数据,默认值为dump.rdb。
12.dir./
工作目录,指定本地数据库存放目录,文件名由上一个dbfilename配置项指定。
这里只能指定一个目录,不能指定文件名
13.appendonly no
如果appendonly配置为no,则不启用AOF方式进行备份。如果appenonly配置为yes,则以AOF方式备份Redis数据,那么此时Redis会按照配置,在特定的时候执行追加命令,用以备份数据,
默认为no。
14.protected-mode yes
保护模式是一层安全保护,以避免Redis在internet上打开的实例被访问和利用。你应该禁用它你确定你想要其他主机的客户连接到Redis,即使没有配置身份验证,也没有特定的接口集。
例:本人测试时仅仅配置了几个参数:
我将redis日志信息存储在/usr/local/redis/data下,日志文件名为6379.log