redis key

本文介绍了Redis中索引命名、多级索引、数据批量插入及条件查询的方法,同时对比了NoSQL与传统关系数据库的区别,展示了如何利用Redis进行高效的数据存储与检索。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

索引命名 多级索引 +  数据批量插入 + 条件查询

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( 主键列值) 


    $redis_key = Yii::app()->params['cache_key']['redis'];
                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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值