|
一、redis简介
redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。
二、redis环境搭建
1、到官网上下载redis,我下载的版本是3.0.7
官网地址:http://redis.io/
2、将下载下来的tar.gz 压缩包拷贝到usr/local目录下
该目录需要root权限 sudo cp redis-3.0.7.tar.gz /usr/local
3、使用终端进入local文件夹中,解压该压缩文件
sudo tar -zxf redis-3.0.7.tar.gz
4、编译测试:sudo make test
5、redis安装: sudo make install
至此,安装已完成、不过还需将redis配置一下
==================================
配置
1、在usr/local目录中创建三个文件夹,包括bin,etc,db三个目录
sudo mkdir /usr/local/bin
sudo mkdir /usr/local/etc
sudo mkdir /usr/local/db
2、将redis-3.0.7目录中的mkreleasehdr.sh,redis-benchmark, redis-check-dump, redis-cli, redis-server拷贝到bin目录
sudo cp /usr/local/redis-3.0.7/src/mkreleasehdr.sh ./bin
............
............
3、进入redis/etc目录下创建redis.conf配置文件
sudo vim redis.conf
4、在redis.conf中添加如下代码
#修改为守护模式
daemonize yes
#设置进程锁文件
pidfile /usr/local/redis/redis.pid
#端口
port 6379
#客户端超时时间
timeout 300
#日志级别
loglevel debug
#日志文件位置
logfile /usr/local/redis/log-redis.log
#设置数据库的数量,默认数据库为0,可以使用SELECT <dbid>命令在连接上指定数据库id
databases 8
##指定在多长时间内,有多少次更新操作,就将数据同步到数据文件,可以多个条件配合
#save <seconds> <changes>
#Redis默认配置文件中提供了三个条件:
save 900 1
save 300 10
save 60 10000
#指定存储至本地数据库时是否压缩数据,默认为yes,Redis采用LZF压缩,如果为了节省CPU时间,
#可以关闭该#选项,但会导致数据库文件变的巨大
rdbcompression yes
#指定本地数据库文件名
dbfilename dump.rdb
#指定本地数据库路径
dir /usr/local/redis/db/
#指定是否在每次更新操作后进行日志记录,Redis在默认情况下是异步的把数据写入磁盘,如果不开启,可能
#会在断电时导致一段时间内的数据丢失。因为 redis本身同步数据文件是按上面save条件来同步的,所以有
#的数据会在一段时间内只存在于内存中
appendonly no
#指定更新日志条件,共有3个可选值:
#no:表示等操作系统进行数据缓存同步到磁盘(快)
#always:表示每次更新操作后手动调用fsync()将数据写到磁盘(慢,安全)
#everysec:表示每秒同步一次(折衷,默认值)
appendfsync everysec
| 将文件保存退出
进入etc目录下 启动redis
sudo ../bin/redis-server ./redis.conf
启动完成后,实时查看启动日志
tail -f /usr/local/redis/log-redis.log
至此,redis 搭建完成,默认端口是6379
若想停止redis 进入bin目录
命令:redis-cli shutdown
停止redis
三、停止redis
./redis-cli -p 7030 shutdown
为了以后运维更轻松,可以利用alias做几个别名,
vi ~/.bashrc
alias redis="cd /opt/app/redis/redis-2.8.17/src"
alias startRedis="/opt/app/redis/redis-2.8.17/src/redis-server /opt/app/redis/redis-2.8.17/conf/redis7030.conf"
alias stopRedis="/opt/app/redis/redis-2.8.17/src/redis-cli -p 7030 shutdown"
具体路径,大家根据实际情况调整,保存退出,重新连接到linux终端
redis 即可直接进入redis根目录
startRedis 即启动redis
stopRedis 即停止redis
四、配置redis仅做为缓存使用
如果不打算使用事务、管线等一堆复杂功能,仅仅把redis当成cache server使用,可以在配置文件中,找到maxmemory、maxmemory-policy这二项,参考下面修改
maxmemory 2048mb
maxmemory-policy allkeys-lru
即:最大允许使用2G内存,所有key全都按LRU(近期最少使用)算法淘汰,这种情况下,不用设置过期时间,只要内存使用达到上限,不怎么使用的key自然被干掉。
附:redis.conf的微优化配置(从百度百科上抄过来的)
1 daemonize yes
2
3 pidfile /opt/app/redis/redis-2.8.17/var/redis.pid
4
5 port 7030
6
7 timeout 300
8
9 loglevel debug
10
11 logfile /opt/app/redis/redis-2.8.17/var/redis.log
12
13 databases 16
14
15 save 9001
16
17 save 30010
18
19 save 6010000
20
21 rdbcompression yes
22
23 dbfilename dump.rdb
24
25 dir /opt/app/redis/redis-2.8.17/var/
26
27 appendonly no
28
29 appendfsync always
30
31 # slaveof <masterip> <masterport>
32 # masterauth <master-password>
33
34 slave-serve-stale-data yes
35
36 slave-read-only yes
37
38 maxmemory 1gb
39
40 maxmemory-policy allkeys-lru
其中:
端口、38行-最大内存使用量、以及var目录路径,大家根据实际情况自行调整 |
|
|