php redis常用命令

 : jank    :   : 3422    : 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的版本信息等详情


   

备案编号:赣ICP备15011386号

联系方式:qq:1150662577    邮箱:1150662577@qq.com