YII框架redis基本操作

文章介绍了如何使用Yii2的Redis扩展进行HashSet操作,包括keys查询、set、hset、hget等命令,以及在业务场景中如何利用Redis进行库存不足时的一天一次短信提醒,通过计划任务在每天12点清空相关key来避免重复提醒。

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

 $redis->keys('orders:*');//查询key
 $redis->set('orders','value');
 $redis->hset('orders','field',1);
 $redis->hget('orders','field');
 $redis->expire('orders', 86400);//设置过期时间

Yii::$app->redis->incr() 自增1

Yii::$app->redis->decr() 自减1

Yii::$app->redis->expire('orders', 86400);//设置过期时间

Yii::$app->redis->hexists() 验证HASH表中是否存在指定的KEY-VALUE

Yii::$app->redis->hset('orders','value')添加一个VALUE到HASH中。如果VALUE已经存在于HASH中,则返回FALSE
Yii::$app->redis->hget('orders','field') 根据键取得数据

Yii::$app->redis->hgetall () 根据键取得所有数据

Yii::$app->redis->hincrby() 根据HASH表的KEY,为KEY对应的VALUE自增参数VALUE

Yii::$app->redis->hKeys() 取得HASH表中的KEYS,以数组形式返回

Yii::$app->redis->get () 取得与指定的键值相关联的值

Yii::$app->redis->setex() 设置一个带有效期(秒)的数据

Yii::$app->redis->incrby() 为键 key 储存的数字值加上增量 increment

Yii::$app->redis->hdel() 删除指定的元素

Yii::$app->redis->ttl() 以秒为单位返回 key 的剩余过期时间(当前键的到期时间)

Yii::$app->redis->set() 一个键值数据存入redis string类型的无序集合,集合中不能出现重复的数据

Yii::$app->redis->multi()标记一个事务块的开始。事务块内的多条命令会按照先后顺序被放进一个队列当中,最后由 EXEC 命令原子性(atomic)地执行。

Yii::$app->redis->del() 删除某个键值

Yii::$app->redis->smembers() 返回集合中的所有的成员。 不存在的集合 key 被视为空集合

Yii::$app->redis->sadd() 将一个或多个成员元素加入到集合中,已经存在于集合的成员元素将被忽略

Yii::$app->redis->srem() 用于移除集合中的一个或多个成员元素,不存在的成员元素会被忽略

Yii::$app->redis->exists()用于检查给定 key 是否存在

Yii::$app->redis->hMget()根据键值和键名取数据

Yii::$app->redis->lrange() 返回列表中指定区间内的元素

Yii::$app->redis->scard()返回集合中元素的数量

Yii::$app->redis->lpush ( ) 将一个或多个值插入到列表头部

Yii::$app->redis->rpush ( ) 将一个或多个值插入到列表尾部

Yii::$app->redis->lpop ( ) 移出并获取列表头部或尾部的第一个元素,如果没有值返回null

Yii::$app->redis->sinter ( ) 返回给定所有集合的交集

Yii::$app->redis->sunion ( ) 返回给定所有集合的并集

Yii::$app->redis->sdiff ( ) 返回给定所有集合的差集

Yii::$app->redis->zadd ( ) 向有序集合添加一个或多个成员,或者更新已存在成员的分数

以上就是使用 Yii2-redis 扩展实现 Redis 的 Hash Set 写入操作的步骤。在实际开发中,还可以使用 Yii::$app->redis->executeCommand() 方法执行 Redis 命令来操作 ,具体操作方式与普通的 Redis 操作类似。

附带一下业务场景
 

一笔订单库存用完后通知用户补库存  利用redis一天只通知一次  计划任务12点清空所有的key

 //短信提醒库存不足  一个商品一天只提醒一次(计划任务定时删除key)
            $_goods_check = Goods::findOne($goods['goods_id']);
            if($_goods_check['goods_num']<1){

                $mch_id  = $mch['mch_id'];
                $good_id = $goods['goods_id'];
                $key  ='mch_id:'.$mch_id.':good_id:'.$good_id;

                if($redis->hget('sms-goods',$key)){

                }else{
                    $redis->hset('sms-goods',$key,(string)date('Y-m-d H:i'));
                    $redis->expire('sms-goods', 86400);
                    $sms = new Sms();
                    $res=$sms->sendMchChangeStock(\Yii::$app->controller->store->id,$mch['mch_id'],$_goods->name);
                }

            }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值