最近在使用redis,刚开始学习,一点一点慢慢积累,根据需求打算最终替换我的mysql库中的一个表,关于redis的介绍google之,下面先开始安装吧,使用系统为debian6。
下载最新的稳定版redis
wget http://redis.googlecode.com/files/redis-2.4.16.tar.gz安装
tar xzf redis-2.4.16.tar.gzcd redis-2.4.16makecp 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
#! /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 INFOPATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/binDAEMON=/usr/bin/redis-serverDAEMON_ARGS=/etc/redis/redis.confNAME=redis-serverDESC=redis-serverPIDFILE=/var/run/redis.pidtest -x $DAEMON || exit 0test -x $DAEMONBOOTSTRAP || exit 0set -ecase "$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 ;;esacexit 0制定配置文件/etc/redis/redis.conf,在redis的源码包中有一个redis.conf配置文件,拷贝至/etc/redis目录下,启动redis:/etc/init.d/redis-server start 即可启动redis,当然不使用启动脚本也是可以的,直接使用redis-server命令启动redis服务,需要在启动时手动指定一个redis.conf配置文件即可。
简单测试
root@redis#redis-cliredis 127.0.0.1:6379> set redis testOKredis 127.0.0.1:6379> get redis"test"redis 127.0.0.1:6379>redis.conf详解
#是否以后台进程运行,默认是no改为yesdaemonize yes#如果以后台进程运行,需要指定一个pid文件pidfile /var/run/redis.pid#服务监听端口port 6379#默认是注释掉的,监听所有端口,修改bind 192.168.1.1#客户端连接空闲多少秒后断开连接,0表示禁用该功能timeout 0#日志级别,有debug、notice、waring、verbose等模式loglevel verbose#日志记录方式,如果以后台进程运行,日志输出至/dev/nulllogfile stdout#是否把日志记录进syslogsyslog-enabled no#指定syslog标记,默认注释syslog-ident redis#指定记录进syslog的级别,默认注释syslog-facility local0#设置数据库的数量,默认为0databases 16############ SNAPSHOTTING #############在多长时间内有多少次更新操作就把数据保存到硬盘#save安装phpredis可以有多条规则save 900 1save 300 10save 60 10000#当dump数据至.rdb时是否开启LZF压缩,为了节省cpu可以关闭,默认开启。rdbcompression yes#指定本地数据库文件名dbfilename dump.rdb#本地数据库存放路径dir /opt############ REPLICATION ###############本机为从服务时设置主的ip和端口#slaveof #当主使用requirepass设置了密码时,从连接主需要密码#masterauth #当从失去到主的连接,从的响应可以有两种行为,设置为yes时仍然响应客户端请求,#设置为no时,给客户端响应error syncslave-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 reachedmaxclients 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 operationsmaxmemory-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大小定义得合适,单位bytesvm-page-size 32#swap文件中的内存页数,在磁盘上的每8 page会消耗1 byte,swap文件的大小是vm-page-size * vm-pagesvm-pages 134217728#在同时读写swap文件的进程数vm-max-threads 4############### ADVANCED CONFIG ##########当hash中包含超过指定元素个数且最大的元素没有超过临界值,hash将以特殊的编码方式来存储hash-max-zipmap-entries 512#hash中一个元素的最大值hash-max-zipmap-value 64#同hashlist-max-ziplist-entries 512list-max-ziplist-value 64#同hashset-max-intset-entries 512#同hash setzset-max-ziplist-entries 128zset-max-ziplist-value 64activerehashing yes################# INCLUDES #############可以包含其他配置文件#include /path/to/local.conf#include /path/to/other.conf
下载phpredis扩展
git clone https://github.com/nicolasff/phpredis.git安装
cd phpredisphpize./configuremakemake installredis.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 也可以看到。
安装完毕后,就该实战了,希望我的项目可以顺利完成。