Redis命令行及PHP下的使用

基本知识

  1. 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。
  2. memcached单个key老版本是1M,新版本是2M。我们可以通过memcache.h文件去修改他的单个KEY的大小。
  3. redis单个key大小为512M
  4. memcached是一个多线程的缓存服务器,而redis是一个单线程的服务器
  5. memcached数据不能持久化,断电后数据丢失
  6. redis是可以进行持久化的。可以使用RDB机制和AOF机制进行数据持久化
  7. memcached不支持集群,它的多服务器情况是在addServers的时候,由客户端使用hash的方式,分配至指定的服务器上的。
  8. redis支持集群,并且redis有最多16个库。memcached没有库的概念
  9. redis支持更多的数据类型,而memcached只有字符型,我们需要自行处理值。
  10. redis在使用的时候,还能单作队列服务器使用,还支持消息订阅(聊天室,消息推送)。
  11. redis内部实现的数据结构是字典

数据类型

  • Redis 支持五种数据类型
  • 默认端口 6379
类型 命令 说明
string set,get,exist,del,strlen,append,mset,megt,incr, incrBy 字符:一个键最大能存储512MB
list lpush,lpop,rpush,rpop,lrange,ltrim,lsize,lset 列表:最多可存储 232 – 1 元素 (4294967295, 每个列表可存储40多亿)
set sadd,sdiff,smove 集合
zset zadd,zrange 有序集合
hash zadd,zrange 哈希:结构同表类似

其他命令

expire key 30 #设置key的过期时间
ttl key #查看key的剩余时间
rename oldkey newkey #重新命令key
del key #删除key
type key #查看key类型
zdiff key key #计算两个key的交集
select 0 #选择数据库
dbsize #查看数据库大小
keys * #查看所有的key
keys a* #查看所有以a开头的key
info keyspace #查看数据库key详细信息

数据持久化RDB和AOF

  • AOF(append of file)追加
  • RDB (Redis database) 快照

PHP下使用

  • 实例化对象,调用方法(驼峰法)的命令如:lpush(命令)=> lPush(php方法)
<?php
//连接
$redis = new Redis();
$redis->pconnect('127.0.0.1', 6379);
$redis->set('ceshi', 123456789);
echo $redis->get('ceshi');
var_dump($redis->keys('*'));
//string
$redis->set('key', 'value');
$redis->get('key');
$redis->exists('key'); /*  TRUE */
$redis->exists('NonExistingKey'); /* FALSE */
$redis->mGet(array('key1', 'key2', 'key3')); 
//list
$redis->delete('key1');
$redis->lPush('key1', 'C'); // returns 1
$redis->lPush('key1', 'B'); // returns 2
$redis->lPush('key1', 'A'); // returns 3
/* 结构: [ 'A', 'B', 'C' ] */
$redis->rPush('key1', 'A');
$redis->rPush('key1', 'B');
$redis->rPush('key1', 'C'); /* key1 => [ 'A', 'B', 'C' ] */
$redis->rPop('key1'); /* key1 => [ 'A', 'B' ] */
//set
$redis->sAdd('key1' , 'member1'); /* TRUE, 'key1' => {'member1'} */

附: PHP-Redis手册下载