一、Redis介绍
Redis是当前比较热门的NOSQL系统之一,它是一个key-value存储系统。和Memcache类似,但很大程度补偿了Memcache的不足,它支持存储的value类型相对更多,包括string、list、set、zset和hash。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作。在此基础上,Redis支持各种不同方式的排序。
和Memcache一样,Redis数据都是缓存在计算机内存中,不同的是,Memcache只能将数据缓存到内存中,无法自动定期写入硬盘,这就表示,一断电或重启,内存清空,数据丢失。所以Memcache的应用场景适用于缓存无需持久化的数据。而Redis不同的是它会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,实现数据的持久化。
二、Redis的安装
下面介绍在Linux环境下,Redis的安装与部署
1、首先上官网下载Redis 压缩包,地址:http://redis.io/download 下载稳定版3.0.7即可。
2、通过远程管理工具,将压缩包拷贝到Linux服务器中,执行解压操作
一般是在根目录 cd /
3、执行make 对Redis解压后文件进行编译
编译完成之后,可以看到解压文件redis-3.2.6 中会有对应的src、conf等文件夹,这和windows下安装解压的文件一样,大部分安装包都会有对应的类文件、配置文件和一些命令文件。
4、编译成功后,进入src文件夹,执行make install进行Redis安装
5、安装完成,界面如下
三、Redis的部署
安装成功后,下面对Redis 进行部署
1、首先为了方便管理,将Redis文件中的conf配置文件和常用命令移动到统一文件中
a)创建bin和redis.conf文件
mkdir -p /usr/local/redis/bin
mkdir -p /usr/local/redis/etc
b)执行Linux文件移动命令:
mv /redis-3.2.6/redis.conf /usr/local/redis/etc
cd /redis-3.2.6/src
mv mkreleasehdr.sh redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server /usr/local/redis/bin
2、执行Redis-server 命令,启动Redis 服务
注意:这里直接执行Redis-server 启动的Redis服务,是在前台直接运行的(效果如上图),也就是说,执行完该命令后,如果Lunix关闭当前会话,则Redis服务也随即关闭。正常情况下,启动Redis服务需要从后台启动,并且指定启动配置文件。
3、后台启动redis服务
a)首先编辑conf文件,将daemonize属性改为yes(表明需要在后台运行)
vim /usr/local/redis/etc/redis.conf
b)再次启动redis服务,并指定启动服务配置文件
redis-server /usr/local/redis/etc/redis.conf
4、服务端启动成功后,执行redis-cli启动Redis 客户端,查看端口号。
四、总结Linux 、Redis 操作常用命令
Linux:
cd /usr 从子文件夹进入上级文件夹usr
cd local 从父到子
mv /A /B 将文件A移动到B
vi usr/local/redis/redis.conf 编辑redis.conf 文件
:wq 保存修改,并退出
Redis:
Redis-server /usr..../redis.conf 启动redis服务,并指定配置文件
Redis-cli 启动redis 客户端
Pkill redis-server 关闭redis服务
Redis-cli shutdown 关闭redis客户端
Netstat -tunpl|grep 6379 查看redis 默认端口号6379占用情况
亦可参考
http://www.cnblogs.com/it-cen/p/4295984.html
http://www.jb51.net/article/79096.htm
http://www.runoob.com/redis/redis-install.html
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
Redis的安装和部署
基本知识
1、Redis的数据类型:
字符串、列表(lists)、集合(sets)、有序集合(sorts sets)、哈希表(hashs)
2、Redis和memcache相比的独特之处:
(1)redis可以用来做存储(storge)、而memcache是来做缓存(cache)。这个特点主要是因为其有“持久化”功能
(2)存储的数据有“结构”,对于memcache来说,存储的数据,只有一种类型——“字符串”,而redis则可以存储字符串、链表、集合、有序集合、哈序结构
3、持久化的两种方式:
Redis将数据存储于内存中,或被配置为使用虚拟内存。
实现数据持久化的两种方式:(1)使用截图的方式,将内存中的数据不断写入磁盘(性能高,但可能会引起一定程度的数据丢失)
(2)使用类似mysql的方式,记录每次更新的日志
4、Redis的主从同步:对提高读取性能非常有益
5、Redis服务端的默认端口是6379
接下来我们来安装Redis
1、先到Redis官网(redis.io)下载redis安装包
2、将其下载到我的/lamp目录下
3、解压并进入其目录
4、编译源程序
make
cd src
make install PREFIX=/usr/local/redis
5、将配置文件移动到redis目录
6、启动redis服务
7、默认情况,Redis不是在后台运行,我们需要把redis放在后台运行
vim /usr/local/redis/etc/redis.conf
将daemonize的值改为yes
8、客户端连接
/usr/local/redis/bin/redis-cli
9、停止redis实例
/usr/local/redis/bin/redis-cli shutdown
或者
pkill redis-server
10、让redis开机自启
vim /etc/rc.local
加入
/usr/local/redis/bin/redis-server /usr/local/redis/etc/redis-conf
11、接下来我们看看/usr/local/redis/bin目录下的几个文件时什么
redis-benchmark:redis性能测试工具
redis-check-aof:检查aof日志的工具
redis-check-dump:检查rdb日志的工具
redis-cli:连接用的客户端
redis-server:redis服务进程
Redis的配置
daemonize:如需要在后台运行,把该项的值改为yes
pdifile:把pid文件放在/var/run/redis.pid,可以配置到其他地址
bind:指定redis只接收来自该IP的请求,如果不设置,那么将处理所有请求,在生产环节中最好设置该项
port:监听端口,默认为6379
timeout:设置客户端连接时的超时时间,单位为秒
loglevel:等级分为4级,debug,revbose,notice和warning。生产环境下一般开启notice
logfile:配置log文件地址,默认使用标准输出,即打印在命令行终端的端口上
database:设置数据库的个数,默认使用的数据库是0
save:设置redis进行数据库镜像的频率
rdbcompression:在进行镜像备份时,是否进行压缩
dbfilename:镜像备份文件的文件名
dir:数据库镜像备份的文件放置的路径
slaveof:设置该数据库为其他数据库的从数据库
masterauth:当主数据库连接需要密码验证时,在这里设定
requirepass:设置客户端连接后进行任何其他指定前需要使用的密码
maxclients:限制同时连接的客户端数量
maxmemory:设置redis能够使用的最大内存
appendonly:开启appendonly模式后,redis会把每一次所接收到的写操作都追加到appendonly.aof文件中,当redis重新启动时,会从该文件恢复出之前的状态
appendfsync:设置appendonly.aof文件进行同步的频率
vm_enabled:是否开启虚拟内存支持
vm_swap_file:设置虚拟内存的交换文件的路径
vm_max_momery:设置开启虚拟内存后,redis将使用的最大物理内存的大小,默认为0
vm_page_size:设置虚拟内存页的大小
vm_pages:设置交换文件的总的page数量
vm_max_thrrads:设置vm IO同时使用的线程数量
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
第一部分:安装redis
希望将redis安装到此目录
1
|
/usr/local/redis
|
希望将安装包下载到此目录
1
|
/usr/local/src
|
那么安装过程指令如下:
1
2
3
4
5
6
7
|
$ mkdir /usr/local/redis
$ cd /usr/local/src
$ wget http: //redis.googlecode.com/files/redis-2.6.14.tar.gz
$ tar xzf redis-2.6.14.tar.gz
$ ln -s redis-2.6.14 redis #建立一个链接
$ cd redis
$ make PREFIX=/usr/local/redis install #安装到指定目录中
|
注意上面的最后一行,我们通过PREFIX指定了安装的目录。如果make失败,一般是你们系统中还未安装gcc,那么可以通过yum安装:
1
|
yum install gcc
|
安装完成后,继续执行make.
在安装redis成功后,你将可以在/usr/local/redis看到一个bin的目录,里面包括了以下文件:
1
|
redis-benchmark redis-check-aof redis-check-dump redis-cli redis-server
|
第二部分:将redis做成一个服务
1.复制脚本到/etc/rc.d/init.d目录
ps: /etc/rc.d/init.d/目录下的脚本就类似与windows中的注册表,在系统启动的时候某些指定脚本将被执行
按以上步骤安装Redis时,其服务脚本位于:
1
|
/usr/local/src/redis/utils/redis_init_script
|
必须将其复制到/etc/rc.d/init.d的目录下:
1
|
cp /usr/local/src/redis/utils/redis_init_script /etc/rc.d/init.d/redis
|
将redis_init_script复制到/etc/rc.d/init.d/,同时易名为redis。
如果这时添加注册服务:
1
|
chkconfig --add redis
|
将报以下错误:
1
|
redis服务不支持chkconfig
|
为此,我们需要更改redis脚本。
2.更改redis脚本
打开使用vi打开脚本,查看脚本信息:
1
|
vim /etc/rc.d/init.d/redis
|
看到的内容如下(下内容是更改好的信息):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
#!/bin/sh
#chkconfig: 2345 80 90
# Simple Redis init.d script conceived to work on Linux systems
# as it does use of the /proc filesystem.
REDISPORT=6379
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
PIDFILE=/var/run/redis_${REDISPORT}.pid
CONF= "/etc/redis/${REDISPORT}.conf"
case "$1" in
start)
if [ -f $PIDFILE ]
then
echo "$PIDFILE exists, process is already running or crashed"
else
echo "Starting Redis server..."
$EXEC $CONF &
fi
;;
stop)
if [ ! -f $PIDFILE ]
then
echo "$PIDFILE does not exist, process is not running"
else
PID=$(cat $PIDFILE)
echo "Stopping ..."
$CLIEXEC -p $REDISPORT shutdown
while [ -x /proc/${PID} ]
do
echo "Waiting for Redis to shutdown ..."
sleep 1
done
echo "Redis stopped"
fi
;;
*)
echo "Please use start or stop as first argument"
;;
esac
|
和原配置文件相比:
1.原文件是没有以下第2行的内容的,
1
|
#chkconfig: 2345 80 90
|
2.原文件EXEC、CLIEXEC参数,也是有所更改。
1
2
|
EXEC=/usr/local/redis/bin/redis-server
CLIEXEC=/usr/local/redis/bin/redis-cli
|
3.redis开启的命令,以后台运行的方式执行。
1
|
$EXEC $CONF &
|
ps:注意后面的那个“&”,即是将服务转到后面运行的意思,否则启动服务时,Redis服务将
占据在前台,占用了主用户界面,造成其它的命令执行不了。
4.将redis配置文件拷贝到/etc/redis/${REDISPORT}.conf
1
2
|
mkdir /etc/redis
cp /usr/local/src/redis/redis.conf /etc/redis/6379.conf
|
这样,redis服务脚本指定的CONF就存在了。默认情况下,Redis未启用认证,可以通过开启6379.conf的requirepass 指定一个验证密码。
以上操作完成后,即可注册yedis服务:
1
|
chkconfig --add redis
|
3.启动redis服务
1
|
service redis start
|
第三,将Redis的命令所在目录添加到系统参数PATH中
修改profile文件:
1
|
vi /etc/profile
|
在最后行追加:
1
|
export PATH= "$PATH:/usr/local/redis/bin"
|
然后马上应用这个文件:
1
|
. /etc/profile
|
执行上一步的时候遇到权限不够:chmod 777 /etc/profile
这样就可以直接调用redis-cli的命令了,如下所示:
1
2
3
4
5
6
|
$ redis-cli
redis 127.0.0.1:6379> auth superman
OK
redis 127.0.0.1:6379> ping
PONG
redis 127.0.0.1:6379>
|
至此,redis 就成功安装了。