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

服务器配置Redis

Redis下载安装配置

wget http://download.redis.io/releases/redis-stable.tar.gztar -xvf redis-stable.tar.gzcd redis-stable/makemake install./utils/install_server.sh

安装成功:

Redis服务查看、开启、关闭

ps -ef|grep redis/etc/init.d/redis_6379 start/etc/init.d/redis_6379 stopservice redis_6379 startservice 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...}

关键字:php, yii2, redis

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部