# 哈希(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
)
);