资讯专栏INFORMATION COLUMN

Yii2使用Redis缓存购物车等数据

heartFollower / 623人阅读

摘要:服务器配置下载安装配置安装成功服务查看开启关闭工程配置下载在中添加并执行配置购物车接口保存购物车数据分钟保存成功参数错误保存购物车数据分钟获取成功参数错误根据限制接口访问

服务器配置Redis Redis下载安装配置
wget http://download.redis.io/releases/redis-stable.tar.gz
tar -xvf redis-stable.tar.gz
cd redis-stable/
make
make install
./utils/install_server.sh

安装成功:

Redis服务查看、开启、关闭
ps -ef|grep redis
/etc/init.d/redis_6379 start
/etc/init.d/redis_6379 stop
service redis_6379 start
service redis_6379 stop
Yii2工程配置Redis 下载yii2-redis

在composer.json中添加

"yiisoft/yii2-redis": "~2.0.0"

并执行

composer update
配置common/config/main.php
"components" => [
        "redis" => [
            "class" => "yii
edisConnection",
            "hostname" => "localhost",
            "port" => 6379,
            "database" => 0,
        ],
    ],
购物车接口
public function actionSetcart(){
    if (isset($_REQUEST["uid"])&&isset($_REQUEST["cart"])) {
        $uid = $_REQUEST["uid"];
        $cart = $_REQUEST["cart"];
        //Redis保存购物车数据:30分钟
        $redis = Yii::$app->redis;
        $redis->set("cart:".$uid, $cart);
        $redis->expire("cart:".$uid, 30*60);
        $result["error"] = 0;
        $result["msg"] = "保存成功";
    } else {
        $result["error"] = 1;
        $result["msg"] = "参数错误";
    }
    return $result;
}

public function actionGetcart(){
    if (isset($_REQUEST["uid"])) {
        $uid = $_REQUEST["uid"];
        //Redis保存购物车数据:30分钟
        $redis = Yii::$app->redis;
        $cart = $redis->get("cart:".$uid);
        $result["error"] = 0;
        $result["msg"] = "获取成功";
        $result["cart"] = $cart ? $cart : "";
    } else {
        $result["error"] = 1;
        $result["msg"] = "参数错误";
    }
    return $result;
}
根据IP限制接口访问
$ip = $_SERVER["REMOTE_ADDR"];
$redis = Yii::$app->redis;
$redis_ip = $redis->get("ip:".$ip);
if ($redis_ip) {
    # code...
} else {
    $redis->set("ip:".$ip, TRUE);
    $redis->expire("ip:".$ip, 60);
    # code...
}

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/21759.html

相关文章

  • yii2中session跨域名的问题

    摘要:可是,我们的域名有这三个域名仅仅是不同的环境,因此,的跨域名访问就引出来了。无论是一二级域名,和不同域名下的跨域,无非要达到两点客户端访问同一个所有域名对应的服务器访问的的数据的位置必须一致。 关闭httponly引起的问题 场景1: 测试A:咦,为什么test环境登录不了呢? 程序员:清缓存。 测试B:握草,dev也登录不了。。。谁看看! 程序员:清缓存。 测试们:。。。唉 场景...

    rollback 评论0 收藏0
  • Redis从入门到进阶

    摘要:从入门到进阶今天跟大家交流一下的一些学习材料,希望通过今天的分享,能够带领大家简单入门。这样它就只会把有效的流量透传到数据库上,而把大部分的数据拦截在这一侧,从而达到了保护数据库的作用。 Redis从入门到进阶 今天跟大家交流一下Redis的一些学习材料,希望通过今天的分享,能够带领大家简单入门Redis。首先介绍一下什么是Redis? Redis全称是Remote Dictionar...

    Hwg 评论0 收藏0
  • 购物网站的redis相关实现

    摘要:购物网站的相关实现需求登录和缓存对于一个大型网上商店,假设每天都会有大约万不同的用户,这些用户会给网站带来亿次点击,并从网站购买超过万件商品。根据给定的令牌查找与之相应的用户,检查用户是否登录,并返回该用户的。 购物网站的redis相关实现 需求: (1)登录和cookie缓存 对于一个大型网上商店,假设每天都会有大约500万不同的用户,这些用户会给网站带来1亿次点击,并从网站购买超...

    twohappy 评论0 收藏0

发表评论

0条评论

heartFollower

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<