php-redis 总结

  php-redis代码库和文档地址:https://github.com/phpredis/phpredis/#readme

  string 字符串类型:

<?php
$redis = new Redis();
$redis->connect("127.0.0.1", 6379);
$redis->auth('');   //登录
$redis->select(1);

/**
 * string类型 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 * 
 * 增
 * 返回值:Boolean
 */ 

$ret = $redis->set('key', 'value');         //第一个参数为键,第二个参数为值
$ret = $redis->setex('key', 20, 'value');   //第二个参数为生命周期(单位秒)
$ret = $redis->mset(array('key-1' => 'value-1', 'key-2' => 'value-2', 'key-3' => 'value-3'));    //批量写入
$ret = $redis->setnx('key', 'value');      //如果键名“key”存在则不写入,否则写入

/**
 * 删
 * 返回值:integer
 */

$ret = $redis->del('key');                     //删除单个 key-value
$ret = $redis->del(array('key-2', 'key-3'));    //批量删除 key-value

/**
 * 修
 */

$ret = $redis->set('key', 'value-1');   //修改,返回值:Boolean
$ret = $redis->incr('total');           //自增,返回值:integer
$ret = $redis->incrby('total', 10);     //指定步进自增,返回值:integer
$ret = $redis->decr('total');           //自减,返回值:integer
$ret = $redis->decrby('total', 12);     //指定步进自减,返回值:integer

/**
 * 查
 * 返回值:string
 */

$ret = $redis->get('key');                   //获取
$ret = $redis->mget(array('key-1', 'key-2')); //批量获取,没有key时获取的值是false

var_dump($ret);
 

 

  list 列表类型(也是链表类型):

 

<?php
$redis = new Redis();
$redis->connect("127.0.0.1", 6379);
$redis->auth('');   //登录
$redis->select(1);

/**
 * List类型(链表) +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 * 
 * 增
 * 返回值 integer,key内值的个数
 */
$ret = $redis->lpush('list','left-list-value');  //左侧插入一个值
$ret = $redis->lpush('list','left-list-value1', 'left-list-value2');  //左侧批量插入值
$ret =$redis->rpush('list','right-list-value');  //右侧插入一个值
$ret =$redis->rpush('list','right-list-value1','right-list-value2');  //右侧批量插入值

// 在“right-list-value1”前面添加“10”,没有“right-list-value1”返回-1
// $ret = $redis->linsert('list', Redis::BEFORE, 'right-list-value1', 10);

//在“right-list-value1”后面添加“18”,没有“right-list-value1”返回-1
// $ret = $redis->linsert('list', Redis::AFTER, 'right-list-value1', 18);

/**
 * 删
 */
$ret = $redis->lpop('list');    //左侧弹出一个值,返回值是弹出的值;返回值 mixed
$ret = $redis->rpop('list');    //右侧弹出一个值,返回值是弹出的值;返回值 mixed

//删除指定值“ right-list-value ”;
//第三个参数的数值表示,值“ right-list-value ”如果重复时,删除几个值,这里删除3个,
//如果重复值小于第三个参数,删除几个就返回几个数值给 $ret。返回值 integer
$ret = $redis->lrem('list', 'left-list-value', 3);

/**
 * 改
 */
//修改索引(索引是从0开始的)上的值,返回值 boolean
$ret = $redis->lset('list', 0, 'list-new-value');

//将值从一个列表的右侧弹出,插入到另一个列表的左侧;返回值:mixed,弹出的值
$ret = $redis->rpoplpush('list', 'list-1');

/**
 * 查
 */
$ret = $redis->lindex('list', 0);   //获取第n个元素的值;有值返回 string,无值返回Boolean
$ret = $redis->lrange('list', 0, -1);   //获取列表中一段的值,0到-1为列表中的全部值;返回值:array
$ret = $redis->lLen('list');   //获取列表的长度;返回值:integer

var_dump($ret);

 

  Set 无序集合类型:

<?php
$redis = new Redis();
$redis->connect("127.0.0.1", 6379);
$redis->auth('');   //登录
$redis->select(1);

/**
* set集合类型 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
* 增
*/
$ret = $redis->sadd('set', 'value');    //添加单个数据,返回值:integer
$ret = $redis->sadd('set', 'value1', 'value2', 'value3');    //批量添加数据,返回值:integer

/**
* 删
*/
$ret = $redis->srem('set', 'value');   //删除一个值,返回值:integer

/**
* 改,并不是真正的修改数据,是移动数据
*/
$ret = $redis->smove('set', 'set-1', 'value');  //把元素 value 从 set 集合移动到 set-1 集合,返回值:Boolean

/**
 * 查
 */
$ret = $redis->smembers('set');   //获取集合中所有的值,返回值:array
$ret = $redis->sCard('set');    //获取集合中元素的个数,返回值:integer
$ret = $redis->srandmember('set');  //随机返回集合中的元素,返回值:string
$ret = $redis->sinter('set-1', 'set-2');    //获取两个集合的交集,返回值:array
$ret = $redis->sunion('set-1', 'set-2');    //获取两个集合的并集,返回值:array
$ret = $redis->sdiff('set-1', 'set-2');    //获取两个集合的差集,set-1 集合在 set-2 集合中不存在的元素,返回值:array
$ret = $redis->sismember('set','value');    //检查集合 set 中是否存在元素 value,返回值:Boolean
var_dump($ret);

 

zset有序集合类型:

<?php
$redis = new Redis;
$redis->connect('localhost', 6379);
$redis->auth('');    //登陆;因为没有配置,这里留空
$redis->select(1);    //选择数据库

/**
  * zset有序集合类型
  * 增
  */
$ret = $redis->zadd('zset', 10, 'value');    //第一个参数是键 key,第二个参数是权重,第三个参数是值;返回值:integer
$ret = $redis->zadd('result', 90, 'zhangsan');    //由于不好理解,做个示例:在成绩排名中,zhangsan的成绩是90分

/**
  * 删
  */
$ret = $redis->zrem('zset', 'value');    //第一个参数是 key,第二个参数是值;返回值:integer

/**
  * 改
  * 不是真正的修改,如需真正的修改,可以先删除再添加
  */
$ret = $redis->zincrby('zset', 1, 'value');    //增加值 value 的权重 1,1为步进;返回值:float

/**
  * 查
  */
$ret = $redis->zrange('zset', 0, -1);    //获取所有的元素 0,-1 是所有区间,1,9 是1到9的区间;返回值:array
$ret = $redis->zrevrange('zset', 0, -1)    //倒序获取所有元素;返回值:array
$ret = $redis->zrangebyscore('zset', 0, 10, ['withscore' => true, 'limit' => [0,2]]);    //按照权重范围进行获取;返回值:array
$ret = $redis->zrevrangebyscore('zset', 01, 0, ['withscore' => true, 'limit' => [0,2]]);    //按照权重范围倒序获取;返回值:array
$ret = $redis->zcount('zset', 3, 10);   //返回权重区间中元素的个数;返回值:integer
$ret = $redis->lLen('zset');    //获取集合的元素个数;返回值:integer
$ret = $redis->zscore('zset', 'value');    //获取单个值的权重;返回值:float
$ret = $redis->zrank('zset', 'value');    //获取某个值的权重排名;返回值:integer

//上面一行代码的示例
$ret = $redis->zadd('result', 90, 'zhangsan');    //zhangsan 90分
$ret = $redis->zadd('result', 95, 'wangwu');    //wangwu 95分
$ret = $redis->zadd('result', 93, 'zhaosi');    //zhaosi 93分
$ret = $redis->zrank('result', 'zhaosi');    //获取 zhaosi 的排名是 2

$ret = $redis->zrevrank('zset', 'value');    //获取某个值的权重倒序排名;返回值:integer

 

   hash 哈希类型:

<?php
$redis = new Redis;
$redis->connect('localhost', 6379);
$redis->auth('');    //登陆;因为没有配置,这里留空
$redis->select(1);    //选择数据库
/**
  * hash 哈希类型
  * 增
  */
$ret = $redis->hset('hash', 'key', 'value');    //单个写入,hash 是键,key 是哈希的键,value 是哈希的值;返回值:integer
$ret = $redis->hmset('hash', array('key-1' => 'value-1', 'key-2' => 'value-2'));    //批量写入,返回值:boolean

/**
  * 删
  */
$ret = $redis->hdel('hash', 'key');    //删除啥希的键,此时健值对一并删除;返回值:integer

/**
  * 改
  */
$ret = $redis->hset('hash', 'key', 'value');    //给添加是一样的,略
$ret = $redis->hincrby('hash', 'total', 1);    //自增某个哈希键(total)的值(1),total 不存在就创建;返回值:integer

/**
  * 查
  */
$ret = $redis->hget('hash', 'key');    //获取单个哈希的值,返回值:string
$ret = $redis->hmget('hash', array('key-1', 'key-2', 'key-3'));    //获取多个键的值,返回值:array
$ret = $redis->hgetall('hash');    //获取该哈希下所有的值,返回值:array
$ret = $redis->hlen('hash');    //获取该哈希下元素的个数,返回值:integer
$ret = $redis->hkeys('hash');    //获取所有的键名,返回值:array
$ret = $redis->hvals('hash');    //获取所有的键值,返回值:array
$ret = $redis->hexists('hash', 'key-other');    //检测哈希下是否存在该键名,返回值:boolean

 

  Redis通用操作:

$redis->select(1);    //选择数据库
$redis->expire('redis-key', 100);    //设置键的生命周期
$ret = $redis->ttl('redis-key');    //返回生命周期的时间,返回值:integer
$ret = $redis->del('redis-key');    //删除健,里面的值一并删除,返回值:integer
$ret = $redis->exists('redis-key-other');    //检测键名是否设置,返回值:boolean
$ret = $redis->keys('*');    //获取所有链名,返回值:array
$redis->flushdb();    //清空当前数据库
$redis->flushall();    //清空 redis 下所有的数据库

 

posted @ 2020-12-30 00:28  孤舟残月浅笑嫣然  阅读(178)  评论(0编辑  收藏  举报