[TOC]

Redis服务应用广泛,支持kv存储原子级别操作,简直是高效Web开发一根救命稻草,这个文档会作为一个健忘症的备忘录来记录redis的日常操作。

Redis服务基本安装

  1. 系统约定/usr/local/src为用户软件源码存放目录。

  2. 下载并安装

    wget http://download.redis.io/releases/redis-2.8.9.tar.gz
    tar xzf redis-2.8.9.tar.gz
    cd redis-2.8.9
    make
    
  3. 一般到/etc/sysctl.conf里添加vm.overcommit_memory=1,然后reboot,这样会允许分配所有内存。

  4. 在redis.conf中修改下列几个:

    daemonize yes #转为守护进程
    maxmemory 256000000 #内存限制
    
  5. 可以把src下面的redis-*的文件都复制到bin下。

  6. 启动

    redis-server redis-conf
    
  7. 客户端调用

 redis-cli

Redis的PHP客户端

目前比较常用的是Predisphpredis,习惯上使用phpredis,使用C语言实现的PHP模块。

1. wget https://github.com/nicolasff/phpredis/archive/master.zip
2. unzip & cd 目录
  1. phpize ./configure [–enable-redis-igbinary] #是否使用igbinary library序列化数据 make && make install
  2. 修改php.ini,添加如下内容extension=redis.so

Redis数据结构

Redis存在几个基本的数据结构,string,hash,list,set,sortset。

一般来说string用于保存简单kv键值。

hash支持一个hash集中多组键值对。

list支持队列操作,而且支持BLPOP之类阻塞list,可以依此实现驻守进程后台等待和操作队列等,可以看我以前写的这个栗子

set集合,支持添加多个不重复值到同一个key中,并且可以方便求并交集。

sortset有序集合,在set基础上,每个key中的每个值都有一个对应的分数,可用于排序,能方便应用于整站统计排名,而且能应用并交集。

Redis文档

Redis命令

Redis命令(也还不错,不如前面一个直观,都是中文的。文档中还包括事务,订阅等)

Redis 设计与实现