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 ) );
分享题目:redis数据类型及使用场景
文章地址:http://scyanting.com/article/pehigo.html