php操作redis数据库常见方法实例总结(2)

四、redis的哈希(hash)操作

//设置hash表中的键值,成功返回1,失败返回0
$ret = $redis->hSet('user', 'name', 'xiaoxu');
var_dump($ret);
//获取hash表中键的值,如果hash表中不存在,则返回false
$ret = $redis->hget('user', 'name');
var_dump($ret);
//判断hash表中字段是否存在,存在返回true,失败返回false
$ret = $redis->hExists('user', 'name');
var_dump($ret);
//删除hash表中的字段,成功返回1,失败返回0
$ret = $redis->hDel('user', 'name');
var_dump($ret);
//批量设置hash表中字段的值,成功返回true
$ret = $redis->hMSet('user', ['name' => 'xiaoxu', 'age' => 28, 'sex' => '男']);
var_dump($ret);
//批量获取hash表中字段的值
$ret = $redis->hMGet('user', ['name', 'age', 'sex']);
var_dump($ret);
//获取hash表中所有字段和值
$ret = $redis->hGetAll('user');
var_dump($ret);
//获取hash表中所有字段名,hash不存在时返回空数组
$ret = $redis->hKeys('user');
var_dump($ret);
//获取hash表中所有字段值
$ret = $redis->hVals('user');
var_dump($ret);
//当hash表中字段不存在时,设置值。如果hash表不存在先创建,若字段存在,不作任何操作。
//设置成功返回true,否则返回false
$ret = $redis->hSetNx('user', 'height', 172);
var_dump($ret);
//获取hash表的字段数量,hash不存在返回0
$ret = $redis->hlen('user');
var_dump($ret);
//为hash表中字段值增加指定增量值,如果增量值为负数,则相当于减法操作
//hash表不存在则先创建,字段不存在则初始为0,若字段值为字符串,则返回false
$ret = $redis->hIncrBy('user', 'age', 10);
var_dump($ret);
//为hash表中字段值增加指定浮点增量值
$ret = $redis->hIncrByFloat('user', 'age', 0.25);
var_dump($ret);

五、redis的列表(list)操作

//从列表头部插入一个值
$ret = $redis->lpush('students', 'xiaoxu');
$ret = $redis->lpush('students', 'xiaoxu2');
var_dump($ret);
//从列表尾部插入一个值
$ret = $redis->rpush('students', 'xiaowang');
$ret = $redis->rpush('students', 'xiaowang2');
var_dump($ret);
//获取列表指定范围内的元素,0表示第一个元素,-1表示最后一个元素
$ret = $redis->lRange('students', 0, -1);
var_dump($ret);
//将一个值插入到已存在的列表头部,列表不存在时操作无效。
$ret = $redis->lPushx('students', 'xiaozhang');
var_dump($ret);
//将一个值插入到已存在的列表尾部,列表不存在时操作无效。
$ret = $redis->rPushx('students', 'xiaoli');
var_dump($ret);
//移出并获取列表的第一个元素,若key不存在或不是列表则返回false。
$ret = $redis->lpop('students');
var_dump($ret);
//移出并获取列表的最后一个元素,若key不存在或不是列表则返回false。
$ret = $redis->rpop('students');
var_dump($ret);
//移出并获取列表的第一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
//超时时间单位:秒
$ret = $redis->blPop('students', 10);
var_dump($ret);
//移出并获取列表的最后一个元素,如果列表没有元素会阻塞列表直到等待超时或发现可弹出元素为止。
$ret = $redis->brPop('students', 10);
var_dump($ret);
//移除列表中最后一个元素,将其插入另一个列表头部,并返回这个元素。若源列表没有元素则返回false。
$ret = $redis->rpoplpush('students', 'students2');
var_dump($ret);
//移除列表中最后一个元素,将其插入另一个列表头部,并返回这个元素。
//如果列表没有元素则会阻塞列表直到等待超时或发现可弹出元素为止。
//超时时间单位:秒
$ret = $redis->brpoplpush('students', 'students2', 10);
var_dump($ret);
//获取列表的长度
$ret = $redis->lLen('students2');
var_dump($ret);
//通过索引获取列表中的元素。若索引超出列表范围则返回false。
$ret = $redis->lIndex('students2', 0);
var_dump($ret);
//通过索引设置列表中元素的值。若是索引超出范围,或对一个空列表进行lset操作,则返回false。
$ret = $redis->lSet('students2', 0, 'xiaomi');
var_dump($ret);
//在列表中指定元素前或后面插入元素。若指定元素不在列表中,或列表不存在时,不执行任何操作。
//参数:列表的key,Redis::AFTER或Redis::BEFORE,基准元素,插入元素
//返回值:插入成功返回插入后列表元素个数,若基准元素不存在返回-1,若key不存在返回0,若key不是列表返回false。
$ret = $redis->lInsert('students2', Redis::AFTER, 'xiaomi', 'xiaoji');
var_dump($ret);
//根据第三个参数count的值,移除列表中与参数value相等的元素。
//count > 0 : 从表头开始向表尾搜索,移除与value相等的元素,数量为count。
//count < 0 : 从表尾开始向表头搜索,移除与value相等的元素,数量为count的绝对值。
//count = 0 : 移除表中所有与value相等的值。
//返回实际删除元素个数
$ret = $redis->lrem('students2', 'xiaomi', 0);
var_dump($ret);
//对列表进行修剪,只保留指定区间的元素,其他元素都删除。成功返回true。
$ret = $redis->ltrim('students2', 0, -1);
var_dump($ret);
      

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.heiqu.com/1925.html