redis数据类型及使用场景
# 哈希(hash)做数据存储
# 列表(list)保存哈希id
# 集合(set)存储唯一值
# redis不适合做多条件查询
# 启用-->添加,停用-->删除(列表可以看到已停用的数据)
# 删除-->删除(删除后列表看不到)
$redis->multi();$redis->hMSet( 'title_'.$id, array( 'title_id' => $id, 'a' => $a, 'b' => $b, ));$redis->rPush('title_id',$id);$redis->sAdd('title_title_'.$title_id,$id);$redis->exec();
删除:
$redis->multi();$redis->del('title_'.$id);$redis->lRem('title_id',$id,0);$redis->sRem('title_title_'.$title_id,$id);$redis->exec();
修改:
$redis->hMSet( 'title_'.$id, array( 'a' => $a1, 'b' => $b1, ));
查询:
a. 列表查询:
$ret1 = $redis->sort( 'title_id', array( 'alpha' => false, 'limit' => array($page - 1,$pagesize), 'sort' => 'desc' ));$ret = array();foreach($ret1 as $v){$ret2 = $redis->hGetAll('title_'.$v);$ret.push($ret2);}
b. 条件查询(条件为id):
$ret1 = $redis->sort( 'title_title_'.$title_id, array( 'alpha' => true, 'limit' => array($page - 1,$pagesize), 'sort' => 'desc' ));foreach($ret1 as $v){$ret2 = $redis->hGetAll('title_'.$v);$ret.push($ret2);}
集合操作:
a. 判断是否属于父级成员:
$ret = $redis->sIsMember('title_title_'.$title_id,$id);
b. 求交集:
$ret = $redis->sInter($key1,$key2,$key3,...);
c. 求长度:
$ret = $redis->sCard($key);
设置过期时间:
$redis->multi();$redis->set($key,$value);$redis->expire($key,$second);$redis->exec();
排行榜:
a. 添加:
$redis->zAdd($title,$score,$value);
b. 删除:
$redis->zRem($title,$value);
c. 增加分数:
$redis->zIncrBy($title,$score,$value);
d. 查看:
$redis->zRevRange($title,$start,$end,true); // 分数从高到低$redis->zRange($title,$start,$end,true); // 分数从低到高$redis->zScore($title,$value); // 查看指定成员的分数
队列:
while(true){$ret = lPop($title);sleep($second);}
排序:
$redis->sort( $key, array( 'limit' => array($start,$len), 'sort' => 'asc' || 'desc', 'alpha' => false ));
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。