> 数据库 > Redis >

debian6 Redis+phpredis安装

 最近在使用redis,刚开始学习,一点一点慢慢积累,根据需求打算最终替换我的mysql库中的一个表,关于redis的介绍google之,下面先开始安装吧,使用系统为debian6。

    下载最新的稳定版redis

?
1
wget http://redis.googlecode.com/files/redis-2.4.16.tar.gz
    安装
?
1
2
3
4
5
6
7
8
tar xzf redis-2.4.16.tar.gz
cd redis-2.4.16
make
cp src/redis-server /usr/bin/
cp src/redis-cli /usr/bin/
cp src/redis-check-aof /usr/bin/
cp src/redis-check-dump /usr/bin/
cp src/redis-benchmark /usr/bin/
    编写redis启动脚本:/etc/init.d/redis-server
?
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#! /bin/sh
### BEGIN INIT INFO
# Provides:     redis-server
# Required-Start:   $syslog $remote_fs
# Required-Stop:    $syslog $remote_fs
# Should-Start:     $local_fs
# Should-Stop:      $local_fs
# Default-Start:    2 3 4 5
# Default-Stop:     0 1 6
# Short-Description:    redis-server - Persistent key-value db
# Description:      redis-server - Persistent key-value db
### END INIT INFO
 
 
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/bin/redis-server
DAEMON_ARGS=/etc/redis/redis.conf
NAME=redis-server
DESC=redis-server
PIDFILE=/var/run/redis.pid
 
test -x $DAEMON || exit 0
test -x $DAEMONBOOTSTRAP || exit 0
 
set -e
 
case "$1" in
  start)
    echo -n "Starting $DESC: "
    touch $PIDFILE
    chown root:root $PIDFILE
    if start-stop-daemon --start --quiet --umask 007 --pidfile $PIDFILE --chuid root:root --exec $DAEMON -- $DAEMON_ARGS
    then
        echo "$NAME."
    else
        echo "failed"
    fi
    ;;
  stop)
    echo -n "Stopping $DESC: "
    if start-stop-daemon --stop --retry 10 --quiet --oknodo --pidfile $PIDFILE --exec $DAEMON
    then
        echo "$NAME."
    else
        echo "failed"
    fi
    rm -f $PIDFILE
    ;;
 
  restart|force-reload)
    ${0} stop
    ${0} start
    ;;
  *)
    echo "Usage: /etc/init.d/$NAME {start|stop|restart|force-reload}" >&2
    exit 1
    ;;
esac
 
exit 0
    制定配置文件/etc/redis/redis.conf,在redis的源码包中有一个redis.conf配置文件,拷贝至/etc/redis目录下,启动redis:/etc/init.d/redis-server start 即可启动redis,当然不使用启动脚本也是可以的,直接使用redis-server命令启动redis服务,需要在启动时手动指定一个redis.conf配置文件即可。

    简单测试

?
1
2
3
4
5
6
root@redis#redis-cli
redis 127.0.0.1:6379> set redis test
OK
redis 127.0.0.1:6379> get redis
"test"
redis 127.0.0.1:6379>
    redis.conf详解
?
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#是否以后台进程运行,默认是no改为yes
daemonize yes
#如果以后台进程运行,需要指定一个pid文件
pidfile /var/run/redis.pid
#服务监听端口
port 6379
#默认是注释掉的,监听所有端口,修改
bind 192.168.1.1
#客户端连接空闲多少秒后断开连接,0表示禁用该功能
timeout 0
#日志级别,有debug、notice、waring、verbose等模式
loglevel verbose
#日志记录方式,如果以后台进程运行,日志输出至/dev/null
logfile stdout
#是否把日志记录进syslog
syslog-enabled no
#指定syslog标记,默认注释
syslog-ident redis
#指定记录进syslog的级别,默认注释
syslog-facility local0
#设置数据库的数量,默认为0
databases 16
############ SNAPSHOTTING  ############
#在多长时间内有多少次更新操作就把数据保存到硬盘
#save <seconds> <changes> 可以有多条规则
save 900 1
save 300 10
save 60 10000
#当dump数据至.rdb时是否开启LZF压缩,为了节省cpu可以关闭,默认开启。
rdbcompression yes
#指定本地数据库文件名
dbfilename dump.rdb
#本地数据库存放路径
dir /opt
############ REPLICATION ##############
#本机为从服务时设置主的ip和端口
#slaveof <masterip> <masterport>
#当主使用requirepass设置了密码时,从连接主需要密码
#masterauth <master-password>
#当从失去到主的连接,从的响应可以有两种行为,设置为yes时仍然响应客户端请求,
#设置为no时,给客户端响应error sync
slave-serve-stale-data yes
#从每隔多长时间ping一次主,单位为秒
#repl-ping-slave-period 10
#Bulk transfer I/O timeout或者主的data/ping响应超时
#repl-timeout 60
################ SECURITY ###############
#客户端在执行命令前需要经过密码验证
requirepass passwd
################ LIMITS ################
#允许客户端同时连接的最大链接数,默认没有限制,0表示没限制,当达到最大限制后
#如果有新的连接过来,则会返回max number of clients reached
maxclients 128
#设置redis可以使用的最大内存,当达到限制后redis会根据策略maxmemmory-policy移除相关key,如果根据策略设置不能移除相关key,redis返回一个错误。
maxmemory 1G
#当达到最大使用内存后,redis在移除key时使用的策略。
#volatile-lru -> remove the key with an expire set using an LRU algorithm
#allkeys-lru -> remove any key accordingly to the LRU algorithm
#volatile-random -> remove a random key with an expire set
#allkeys->random -> remove a random key, any key
#volatile-ttl -> remove the key with the nearest expire time (minor TTL)
#noeviction -> don't expire at all, just return an error on write operations
maxmemory-policy volatile-lru
################ APPEND ONLY MODE #########
#是否在每次更新操作后把数据立即更新进磁盘中,开启后redis会把每个写操作追加进appendonly.aof文件中,这个紧急在开启redis服务时被加载
appendonly no
#指定更新日志文件名
appendfilename appendonly.aof
#指定更新日志条件,调用系统的fsync()把数据写入磁盘中,有三种模式:
#no 等待操作系统本身自己同步buffer数据,快
#always 每次更新log后同步数据,慢但安全
#everysec 每秒同步一次,折中做法
appendfsync everysec
#
no-appendfsync-on-rewrite no
#自动重写aof文件,0表示禁用此功能
auto-aof-rewrite-percentage 100
#定义在重写aof文件前,aof文件的最小值
auto-aof-rewrite-min-size 64mb
################### SLOW LOG ##############
#慢查询记录,值记录命令操作时间,不包括同客户端连接之类的I/O操作,记录操作时间大于N微秒的,如果设置为负数,则禁用此功能
slowlog-log-slower-than 10000
#设置慢查询日志长度,默认是么有限制的,但是它会占用内存,所以最好限制一下
slowlog-max-len 128
############## VIRTUAL MEMORY ############
#vm机制在redis2.4中强烈不建议使用,
#是否开启vm机制
vm-enabled no
#虚拟内存文件存放路径,多个redis进程不能共享同一个文件
vm-swap-file /tmp/redis.swap
#将所有大于vm-max-memory的数据存入虚拟内存,0表示所有数据都存储在虚拟内存
vm-max-memory 0
#swap文件被分割成pages,对象可以存储在多个pages中,但是pages不能被多个对象共享,所以page大小定义得合适,单位bytes
vm-page-size 32
#swap文件中的内存页数,在磁盘上的每8 page会消耗1 byte,swap文件的大小是vm-page-size * vm-pages
vm-pages 134217728
#在同时读写swap文件的进程数
vm-max-threads 4
############### ADVANCED CONFIG #########
#当hash中包含超过指定元素个数且最大的元素没有超过临界值,hash将以特殊的编码方式来存储
hash-max-zipmap-entries 512
#hash中一个元素的最大值
hash-max-zipmap-value 64
#同hash
list-max-ziplist-entries 512
list-max-ziplist-value 64
#同hash
set-max-intset-entries 512
#同hash set
zset-max-ziplist-entries 128
zset-max-ziplist-value 64
activerehashing yes
################# INCLUDES ############
#可以包含其他配置文件
#include /path/to/local.conf
#include /path/to/other.conf
    安装phpredis

    下载phpredis扩展

?
1
git clone https://github.com/nicolasff/phpredis.git
    安装
?
1
2
3
4
5
cd phpredis
phpize
./configure
make
make install
    redis.so 默认被安装在源码的modules目录,拷贝redis.so到适当的位置,debian6中是/usr/lib/php5/20090626/

    安装完毕后,默认是不会开启phpredis模块的,还需要手动开启,在/etc/php5/conf.d目录下建立redis.ini文件,内容为:extension=redis.so

    重启apache,编写info()php文件,会看到redis信息,php -m 也可以看到。

    安装完毕后,就该实战了,希望我的项目可以顺利完成。

  (责任编辑:IT)