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

服务器配置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

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\redis\Connection',
            '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...
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,463评论 19 139
  • 是什么 如果你知道yum、apt-get、npm、bower等命令中的一种或者多种,那么,你也能很快知道compo...
    旱魃一样阅读 8,357评论 0 9
  • Composer Repositories Composer源 Firegento - Magento模块Comp...
    零一间阅读 9,346评论 1 66
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,071评论 6 342
  • 读经 撒母耳记上5:1-6:21 经文 撒母耳记上6:20 伯示麦人说:“谁能在耶和华这圣洁的 神面前侍立呢?这约...
    君自尔出阅读 4,470评论 0 1