: jank : : 5219 : 2016-09-22 18:04 redis
//连接redis
$redis = new Redis();
$redis->connect('127.0.0.1', 6379) or die('连接失败');
一、string
$redis->set('name', 'jank'); //设置name的值
$result = $redis->get('name'); //获取name的值
$result = $redis->getrange('name', 0, 1); //截取字符串name中的0到1的值
$result = $redis->getset('names', 'i love you'); //返回给定 key 的旧值。 当 key 没有旧值时,即 key 不存在时,返回 nil 。当 key 存在但不是字符串类型时,返回false。
$redis->mset(array('names' => 'jank', 'age' => 23, 'from' => 'jiangxi'));//一次设置多个值
$result = $redis->mget(array('name', 'names', 'age', 'from'));//一次取出多个值
$redis->setex('address', 30, 'beijing'); //设置带生存时间(30秒)的键值
$redis->setnx('name1', 'jank'); //设定键值不存在时的新键值
$result = $redis->strlen('name'); //计算字符串的长度
$result = $redis->msetnx(array('name'=>'jank', 'a'=>'jason'));//一次设置多个新值,全部为新返回true
$redis->incr('age'); //自动加1
$redis->incrby('age', 10); //增加指定数额
$redis->decr('age'); //自动减1
$redis->decrby('age', 10); //减少指定数额
$redis->append('name', ' ai'); //字符串后面添加字符串,注:没有prepend
二、hash
$redis->hmset('user-' . date('Ymd'), array('name' => 'jank', 'from' => 'jiangxi', 'age' => 23, 'address' => 'beijing')); //一次设置多个键
$redis->hget('user-' . date('Ymd'), 'name'); //获取单个值
$result = $redis->hmget('user-' . date('Ymd'), array('name', 'from', 'age', 'address'));//获取多个值
$result = $redis->hgetall('user-' . date('Ymd'));//获取该键下的所有值
$result = $redis->hkeys('home'); //查询home下所有键
$result = $redis->hexists('home', 'sheng'); //判断是否存在键,一次只能判断一个
$result = $redis->hsetnx('home', 'guo', 'china'); //设置值,并判断当这个键不存在时添加
$result = $redis->hincrby('user-' . date('Ymd'), 'age' , 1);//hash表中键值自动加1,注hash没有decr
三、list
$redis->lpush('chat', 'am'); //在链表最左边增加一个值
$redis->lpop('chat'); //删除最左边一个值
$redis->rpop('chat'); //删除最右边一个值
$redis->rpush('chat', 'i'); //在链表最右边增加一个值
$result = $redis->lindex('chat', 1); //通过序号得到值
$redis->lrem('chat', 'i'); //删除链表中的一个值
$redis->ltrim('chat', 1, -1); //删除链表从一到最后一个元素值
$result = $redis->llen('chat'); //获取列表的长度
$result = $redis->lrange('chat', 0, -1); //获取当前链表所有的值
$result = $redis->lpushrpop('chat', 'jank');
四、set
$redis->sadd('jihe', 4); //添加成员
$result = $redis->smembers('jihe'); //返回集合的所有成员
$result = $redis->scard('jihe'); //返回集合的所有成员数
$result = $redis->sdiff('jihe', 'jihe1'); //返回n个集合的所有差集
$redis->sdiffstore('jihe2', 'jihe', 'jihe1');//把'jihe','jihe1'...'jihen'的差集存在'jihe2'
$result = $redis->sinter('jihe', 'jihe1'); //n个集合的交集
$redis->sinterstore('jihe3','jihe1', 'jihe'); //把'jihe','jihe1'...'jihen'的交集存在'jihe3'
$result = $redis->sismember('jihe', 0); //判断0是否存在'jihe'中,返回布尔值
$result = $redis->smove('jihe', 'jihe1', 0); //把'jihe'中的0移动到'jihe1'中,返回布尔值
$result = $redis->spop('jihe1'); //随机的删除集合中的一个值
$result = $redis->srandmember('jihe') //随机取出集合中的一个值
$result = $redis->srem('jihe', 1,2); //删除集合中一个或多个指定的值,没有则不删
$result = $redis->sunion('jihe', 'jihe1', 'jihe2', 'jihe3'); //返回多个集合的并集
$redis->sunionstore('jihe5', 'jihe', 'jihe1', 'jihe2', 'jihe3');//把多个集合的并集放到jihe5中
五、sorted set
$redis->zadd('zset', 2, 'jason'); //添加有序集合成员
$result = $redis->zrange('zset', 0, -1); //获取有序成员的值
$result = $redis->zrange('zset', 0, -1, 'withscores'); //获取有序成员的分数和值
$result = $redis->zcard('zset'); //查询值的个数
$result = $redis->zcount('zset', 0, 2); //查询分数为0 ~ 2 的值的个数
$redis->zincrby('zset', 1, 'zhang'); //给指定值增加1
$result = $redis->zscore('shuxue', 'jank');//查询指定值的分数
$redis->zrem('zset', 'jank'); //删除值为jank的所有分值
$result = $redis->zrank('shuxue', 'jason'); //查看值的排名,递增
六、订阅
订阅:SUBSCRIBE redisChat
发布:PUBLISH redisChat "Redis is a great caching technique" (另一个客户端)
# 订阅者的客户端会显示如下消息
1) "message"
2) "redisChat"
3) "Redis is a great caching technique"
1) "message"
2) "redisChat"
3) "Learn redis by w3cschool.cc"
七、事务
1DISCARD 取消事务,放弃执行事务块内的所有命令。
2EXEC 执行所有事务块内的命令。
3MULTI 标记一个事务块的开始。
4UNWATCH 取消 WATCH 命令对所有 key 的监视。
5WATCH key [key ...] 监视一个(或多个) key ,如果在事务执行之前这个(或这些) key 被其他命令所改动,那么事务将被打断。
$redis->multi();
$redis->set('name','jank');
$redis->hmset('user', array('name' => 'jank', 'age' => 23, 'from' => 'jiangxi'));
$result = $redis->hmget('user',array('name', 'age', 'from'));
var_dump($result);
$redis->exec();
八、redis 操作相关
flushDB
清空当前数据库
flushAll
清空所有数据库
randomKey
随机返回key空间的一个key
$key = $redis->randomKey();
select
选择一个数据库
move
转移一个key到另外一个数据库
$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
rename, renameKey
给key重命名
$redis->set('x', '42');
$redis->rename('x', 'y');
$redis->get('y'); // → 42
$redis->get('x'); // → `FALSE`
renameNx
与remane类似,但是,如果重新命名的名字已经存在,不会替换成功
setTimeout, expire
设定一个key的活动时间(s)
$redis->setTimeout('x', 3);
expireAt
key存活到一个unix时间戳时间
$redis->expireAt('x', time() + 3);
keys, getKeys
返回满足给定pattern的所有key
$keyWithUserPrefix = $redis->keys('user*');
dbSize
查看现在数据库有多少key
$count = $redis->dbSize();
auth
密码认证
$redis->auth('foobared');
bgrewriteaof
使用aof来进行数据库持久化
$redis->bgrewriteaof();
slaveof
选择从服务器
$redis->slaveof('10.0.1.7', 6379);
save
将数据同步保存到磁盘
bgsave
将数据异步保存到磁盘
lastSave
返回上次成功将数据保存到磁盘的Unix时戳
info
返回redis的版本信息等详情