1、宝塔安装
软件管理-PHP-设置-安装扩展-redis
2、微擎配置
文件:data/config.php
$config['setting']['cache'] = 'redis'; [35行左右] 缓存改为redis。
最下面加上
// -------------------------- CONFIG REDIS --------------------------- //
$config['setting']['redis']['server'] = '127.0.0.1';//如果redis服务器在别的机器,请填写机器的IP地址。
$config['setting']['redis']['port'] = 6379;
$config['setting']['redis']['pconnect'] = 0;
$config['setting']['redis']['timeout'] = 1;
$config['setting']['redis']['auth'] = 'iwonmo'; //微擎
$config['setting']['redis']['requirepass'] = 'iwonmo';//人人用这个
auth 配置需要到redis的配置文档里进行配置,在微擎里如上定义只是方便引用。
3、更新微擎缓存
微擎后台-系统-更新缓存
4、查看是否开启成功
微擎后台-站点-性能优化
5、测试代码
public function build_sn(){
$yCode = array(
'A'
, 'B'
, 'C'
, 'D'
, 'E'
, 'F'
, 'G'
, 'H'
, 'I'
, 'J'
);
$orderSn = $yCode[rand(0,9)] . strtoupper
(
dechex
(
date
(
'm'
))) . date
(
'd'
) . substr
(time(), -5) . substr
(microtime(), 2, 5) . sprintf(
'%02d'
, rand(0, 99));
return $orderSn;
}
public function doPageRedis_setRedPack(){
global $_W;
$redisConfig = $_W[
"config"
][
'setting'
][
'redis'
];
$redis = new Redis();
$redis->pconnect(
$redisConfig
[
'server'
], $redisConfig
[
'port'
],
$redisConfig
[
'timeout'
]);
// 随机一个红包Key
$key = $this->build_sn();
for ($i = 1; $i <= 10; $i
++)
{
$redis->lpush(
$key
, $i
);
}
// 写入到数据库
$RedPack_data = array(
'num' => 10,
);
$result = pdo_insert('redis_test'
, $RedPack_data
);
// 返回前端信息 - 抢红包
if (!empty
(
$result
)) {
echo "id:".pdo_insertid().
" RadKey:"
.
$key
;
}else
{
echo "RadPack:Error";
}
}
public function doPageRedis_test(){
global $_W,
$_GPC
;
$redisConfig = $_W[
"config"
][
'setting'
][
'redis'
];
$redis = new Redis();
$redis->pconnect(
$redisConfig
[
'server'
], $redisConfig
[
'port'
],
$redisConfig
[
'timeout'
]);
// 返回列表的长度 key 被解释为一个空列表,返回 0
if(
$redis
->llen(
$_GPC
[
'RadKey'
]) == 0) return $this
->result(
$errno = 0, $message = 'No Pack'
);
// 移除并返回列表的第一个元素
$List = $redis->lpop(
$_GPC
[
'RadKey'
]);
if(
intval
(
$List
) > 0){
$result = pdo_update('redis_test'
, array
(
'num' => $List
-1), array
(
'id' => $_GPC
[
'id'
]));
if (!empty
(
$result
)) return $this
->result(
$errno = 0, $message = 'Get Ok:'
.
$List
); else return $this
->result(
$errno = 0, $message = 'Get Error:'
.
$List
);
}else
return $this->result(
$errno = 1, $message = 'Error:High incidence of complications'
,
'llen(RadKey) == 0'
);
}
生成红包:Redis_setRedPack
拆开红包:Redis_test
POST:id=[红包ID]&RadKey=[RdisListKey]
使用:访问Redis_setRedPack创建红包,会返回ID和RdisListKey。继而访问Redis_test拆开红包。