string:定义顶级key 的过期时间,expire只对顶级key有效,
redis.setex("website_google", 300, "www.google.cn");
redis.setex("website_baidu", 300, "www.baidu.com");
redis.setex("website_sina", 300, "www.sina.com");
索引规则: key(表名 主键 列名) val( 列值) | key(表名 列名 列值) val( 主键列值)
errorall();
foreach($generalCache as $key=>$vals){
Yii::app()->redis->getClient()->set($redis_key.$vals['id'].'pinyin', $vals['pinyin']);
Yii::app()->redis->getClient()->set($redis_key.$vals['id'].'pic', $vals['pic']);
Yii::app()->redis->getClient()->set($redis_key.$vals['id'].'name', $vals['name']);
}
echo Yii::app()->redis->getClient()->get($redis_key.'1'.'pic');exit;
多级索引
list : app_id1 app_id2 app_id3
hash:app_id1(app_name app_date app_des ...)
nosql本质上跟关系数据库是有区别的,hash就是原始数据,list就相当于聚簇索引,
先从zset或list取出id,然后去hash里取出数据,也可以直接把数据转换成json,存在zset或list里。
/* json_encode 批量插入
* hset 批量插入
* sadd 建立唯一索引
* sinter smember 可做多条件查询
*/
$redis = new Redis();
$redis->connect('127.0.0.1', 6379,5);
foreach($generalCache as $general){
$arr = array('name'=>$general['name'],'pic'=>$general['pic'],'des'=>$general['des']);
$redis->set($general['pinyin'], json_encode($arr));
}
$general_hash->expire(3600);
$re = $general_hash->getData();
$re =$redis->keys('guan*');
//keys 用来模糊搜索,但是效率不高,可用集合来实现
//建立索引
sadd man.age.20 1 3 5
sadd man.age.25 2 4
sadd man.name.zhangsan 1
sadd man.name.lisi 2
sadd man.name.wangwu 3
sadd man.name.zhaoliu 4
sadd man.name.maqi 5
sadd man.city.bj 1 4
sadd man.city.sh 2
sadd man.city.sz 2 5
查询:city=sz 的人
smembers man.city.sz
查询:age=20 的人
smembers man.age.20
查询:city=sz and age=20 的人
sinter man.city.sz man.city.20