服务端安装:目前官方没有windows版本,只有Linux
$ wget http://redis.googlecode.com/files/redis-2.4.1.tar.gz
$ tar xzf redis-2.4.1.tar.gz
$ cd redis-2.4.1
$ make
启动 ./src/redis-server
直到目前2.40版本前,虚拟磁盘还是不稳定而且有很多问题,这些问题,官方说是会不断地完善,但并没有给出具体的虚拟磁盘可以使用的具体版本和时间
客户端连接:
目前有多种方案
Phpredis比较好,在底层封装好操作,性能较高,而且面向对象,windows和linux下的方式都有,下载地址
https://github.com/nicolasff/phpredis,
编辑器自动下拉下载地址
https://github.com/ukko/phpredis-phpdoc/downloads
语法:详细地参考https://github.com/nicolasff/phpredis
类型:
string: Redis::REDIS_STRING
set: Redis::REDIS_SET
list: Redis::REDIS_LIST
zset: Redis::REDIS_ZSET
hash: Redis::REDIS_HASH
other: Redis::REDIS_NOT_FOUND
链接结构(相当堆栈),里面的数据可以重复,而集合里不会重复,链式结构倾向于,根据下标取值,前台取数据,取指定下标段的数据(这点集合没有这功能),集合适合做各种数据操作,交集并集,排序等,zadd相关于是原来sadd基础上引进了下标的概念,不过这下标是写死的,不如链接结构中会自动重建,hash相当是关联数组的概念
设置前缀
$redis->setOption(Redis::OPT_PREFIX, 'myAppName:');
批量地设置,获取
$redis->mset(array('key0' => 'value0', 'key1' => 'value1'));
$redis->getMultiple(array('key1', 'key2', 'key3'));
$redis->set('key1', 'value1');
$redis->set('key2', 'value2');
$redis->set('key3', 'value3');
$redis->getMultiple(array('key1', 'key2', 'key3')); /* array('value1', 'value2', 'value3');
事务执行:multi(),IPELINE()
,还是比较弱的
$ret = $redis->multi()
->set('key1', 'val1')
->get('key1')
->set('key2', 'val2')
->get('key2')
->exec();执行
$ret = $redis->multi()
->set('key1', 'val1')
->get('key1')
->set('key2', 'val2')
->get('key2')
->discard
();回滚
链式操作:
lpush,rpuch,支持从前后插入,
lpop,rpop支持从前后弹出出,
lget取出,lRange('key1', 0, -1)取出指定范围的元素,lSet('key1', 0, 'X'),lInsert('key1', Redis::BEFORE, 'C', 'X')
lRem('key1', 'A', 2)
删除指定值的元素一次
集合操作:以s开始的函数,有集合交集,并集等函数
字符类型操作:
追加
$redis->set('key', 'value1');
$redis->append('key', 'value2'); /* 12 */
$redis->get('key'); /* 'value1value2' */
切换database操作
$redis->select(0); // switch to DB 0
$redis->set('x', '42'); // write 42 to x
$redis->move('x', 1); // move to DB 1
$redis->select(1); // switch to DB 1
$redis->get('x'); // will return 42
清空当前数据库
$redis->flushDB();
清空所有数据库
$redis->flushAll();