背景:

Redis始于一个意大利创业公司Merzia,创始人Salvatore Sanfilippo以及另外一名主要代码贡献者Pieter Noordhuis目前在VMware,全职开发Redis。Redis代码托管在Github上

Redis在性能上是单线程模型,而Memcached支持多线程,所以在多核服务器上后者的性能更高一些,然而Redis的性能已经足够优异,在绝大部分场合下其性能都不会成为瓶颈。所以在使用时更应该关心的是二者功能上的区别,如果需要用到高级的数据类型或是持久化等功能,Redis将会是Memcached很好的替代品。

如果,Redis配合Lua脚本,那样就是完美的缓存,Lua可以解决Redis单线程模式,高速读写redis


环境:

单台机器,虚拟机,IP:192.168.0.222

系统:Centos 6.3  64bit  mini-install


准备工作:

tcl8.6.1-src.tar.gz            redis-2.6.14.tar.gz           phpredis-master.tar.gz

去对应官方网站,下载,这三个开源包,不懂就百度,别找几个包都不会,那就蛋碎了!


安装步骤:

1、先编译一下环境,把gcc和make都给yum上

yum -y install gcc make

tar xzvf tcl8.6.1-src.tar.gz

cd tcl8.6.1/


2、开始安装tcl,tcl是redis的最主要依赖工具,所以需要编译

cd unix &&

./configure --prefix=/usr           \

            --without-tzdata        \

            --mandir=/usr/share/man \

            $([ $(uname -m) = x86_64 ] && echo --enable-64bit) &&

make &&

sed -e "s@^\(TCL_SRC_DIR='\).*@\1/usr/include'@" \

    -e "/TCL_B/s@='\(-L\)\?.*unix@='\1/usr/lib@" \

    -i tclConfig.sh

官网说这一步完成之后,可以make  test一下,坑人啊,千万不要make test,一旦你make test,那么你可以去喝几杯咖啡休息一下了,至少半个小时才能完成。


3、开始安装tcl,并且配置库文件环境

make install &&

make install-private-headers &&

ln -v -sf tclsh8.6 /usr/bin/tclsh &&

chmod -v 755 /usr/lib/libtcl8.6.so


4、依赖包装完,现在可以开始安装 redis了,不过,安装redis之前,需要编译一下服务器环境

echo 1 > /proc/sys/vm/overcommit_memory

echo vm.overcommit_memory=1 >> /etc/sysctl.conf

sysctl vm.overcommit_memory=1

如果不先配置下面的内核参数,Redis脚本在重启或停止redis时,将会报错,并且不能自动在停止服务前同步数据到磁盘上


5、安装redis

tar xzvf redis-2.6.14.tar.gz

cd redis-2.6.14

make

make test

make install

cp redis.conf /etc/


6、编辑/etc/redis.conf ,修改daemaon no 为daemaon yes ,以守护进程方式启动进程。


7、创建 /etc/init.d/redis  启动脚本,并且输入下面的内容填充

vi /etc/init.d/redis

----------------------------------从下面开始,复制,然后张贴上去

#!/bin/bash 

# Init file for redis 

# chkconfig: - 80 12 

# description: redis daemon 

# processname: redis 

# config: /etc/redis.conf 

# pidfile: /var/run/redis.pid 

source /etc/init.d/functions

#BIN="/usr/local/bin" 

BIN="/usr/local/bin"

CONFIG="/etc/redis.conf"

PIDFILE="/var/run/redis.pid"

### Read configuration 

[ -r "$SYSCONFIG" ] && source "$SYSCONFIG"

RETVAL=0 

prog="redis-server"

desc="Redis Server"

start() { 

        if [ -e $PIDFILE ];then

             echo "$desc already running...."

             exit 1 

        fi

        echo -n $"Starting $desc: "

        daemon $BIN/$prog $CONFIG 

        RETVAL=$? 

        echo

        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/$prog 

        return $RETVAL 

stop() { 

        echo -n $"Stop $desc: "

        killproc $prog 

        RETVAL=$? 

        echo

        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/$prog $PIDFILE 

        return $RETVAL 

restart() { 

        stop 

        start 

case "$1" in

  start) 

        start 

        ;; 

  stop) 

        stop 

        ;; 

  restart) 

        restart 

        ;; 

  condrestart) 

        [ -e /var/lock/subsys/$prog ] && restart 

        RETVAL=$? 

        ;; 

  status) 

        status $prog 

        RETVAL=$? 

        ;; 

   *) 

        echo $"Usage: $0 {start|stop|restart|condrestart|status}"

        RETVAL=1 

esac 

exit $RETVAL



8、设置redis 启动权限,并且开启自动启动模式

chmod 755 /etc/init.d/redis 

chkconfig --add redis 

chkconfig --level 345 redis on 

chkconfig --list redis


9、启动redis

redis-server /etc/redis.conf

或者,可以用下面这条

service redis stat

发现进程,在线,那么就说明redis安装成功了

wKiom1QCmKmQ-jBYAACxOQIpAJY743.jpg


10、测试一下redis,是否正常运作,进行写入和读取操作

wKioL1QCmf7z8rvTAAB33Lcsdcc789.jpg

很明显,可以set,也就是说可以写入,zhou这个key,对应的value值为 1234

然后,我们又get,也就是说,获取 zhou这个key,对应的value值为1234

如果看不懂这几条命令也没关系,后续文章,我会讲解一下,redis这些常见操作"cli"


11、既然安装完成了,那么,接下来就是投入运营的问题了,这些都是单一命令,不适合运营,所以,我们需要弄一个API,普遍用的web语言就是PHP,所以,我们需要让他支持PHP,因此,需要装一个php插件。


12、安装php插件之前,需要先安装PHP环境,php安装我就不罗嗦了,不懂可以去看我这篇文章


 Centos Nginx+PHP Install 史上最完美 


13、开始安装PHP插件

tar xvf phpredis-master.tar.gz

cd phpredis-master

phpize                      ---注意,这里要记住系统输出来的路径,

./configure --enable-redis

make && make install


14、编辑/etc/php.ini,加入下面两句

extension_dir = "/usr/lib64/php/modules/"       这个路径,就是上面我让你记住的那个输出来值

extension = redis.so


15、重启一下php就完事了。


16、php怎么调用 redis,请看后续文章。