最近在使用redis,刚开始学习,一点一点慢慢积累,根据需求打算最终替换个人mysql库中的一个表,关于redis的介绍google之,下面先开始安装吧,使用系统为debian6。 php
下载最新的稳定版redis mysql
wget http://redis.googlecode.com/files/redis-2.4.16.tar.gz安装
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
#! /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配置文件便可。
简单测试 git
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详解
#是否之后台进程运行,默认是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扩展 github
git clone https://github.com/nicolasff/phpredis.git安装
cd phpredis phpize ./configure make make installredis.so 默认被安装在源码的modules目录,拷贝redis.so到适当的位置,debian6中是/usr/lib/php5/20090626/
安装完毕后,默认是不会开启phpredis模块的,还须要手动开启,在/etc/php5/conf.d目录下创建redis.ini文件,内容为:extension=redis.so redis
重启apache,编写info()php文件,会看到redis信息,php -m 也能够看到。 sql
安装完毕后,就该实战了,但愿个人项目能够顺利完成。 shell