请问大神们,个人想法是先读取redis->get读取key,不存在时去数据库取同时设置缓存,在redis->get中不能使用数据库操作,正确写法应该怎么写,谢谢 错误代码 worker[BusinessWorker:8843] exit with status 64000 代码如下
1、先通过redis查询数据存在,存在则直接返回 2、不存在,通过mysql查询,并且保存和设置redis缓存,然后返回
redis 中的 get 方法,好像不能使用闭包(匿名)函数吧 我记得好像,闭包函数使用上层变量,需要使用 use 引入变量
我使用的是composer require workerman/redis 安装,读取都是,判断都是这样一个方法,在({ })内不能使用外面的变量与对象 ({ })后面加,会先执行,这种方式应该是异步了,所以不知道怎么写了 $redis->get('key', function($result) { print_R($result); echo "\r\n"; echo "11111111\r\n"; }); echo "222222222\r\n"; 判断存在也是这样写的同样的问题
$redis->exists('key', function ($result) { print_R($result); echo "\r\n"; echo "11111111\r\n"; }); echo "222222222\r\n";
最终都是显示 222222222 $result数组的值 111111111
先 判断 $redis->exists() 存在 获取 $redis->get() 不存在 $redis->set();
谢谢
支持 闭包么?
试过没成功
workerman/redis get可以支持闭包
这个闭包我试过,搞了好久,现在一试就好了,非常感谢 li914
不会异步就用redis扩展同步用法吧,看手册里workerman/redis用于subscribe订阅,除此之外建议用redis扩展。
1、先通过redis查询数据存在,存在则直接返回
2、不存在,通过mysql查询,并且保存和设置redis缓存,然后返回
redis 中的 get 方法,好像不能使用闭包(匿名)函数吧
我记得好像,闭包函数使用上层变量,需要使用 use 引入变量
我使用的是composer require workerman/redis 安装,读取都是,判断都是这样一个方法,在({ })内不能使用外面的变量与对象 ({ })后面加,会先执行,这种方式应该是异步了,所以不知道怎么写了
$redis->get('key', function($result) {
print_R($result);
echo "\r\n";
echo "11111111\r\n";
});
echo "222222222\r\n";
判断存在也是这样写的同样的问题
$redis->exists('key', function ($result) {
print_R($result);
echo "\r\n";
echo "11111111\r\n";
});
echo "222222222\r\n";
最终都是显示
222222222
$result数组的值
111111111
先 判断 $redis->exists() 存在 获取 $redis->get()
不存在 $redis->set();
谢谢
我使用的是composer require workerman/redis 安装,读取都是,判断都是这样一个方法,在({ })内不能使用外面的变量与对象 ({ })后面加,会先执行,这种方式应该是异步了,所以不知道怎么写了
$redis->get('key', function($result) {
print_R($result);
echo "\r\n";
echo "11111111\r\n";
});
echo "222222222\r\n";
判断存在也是这样写的同样的问题
$redis->exists('key', function ($result) {
print_R($result);
echo "\r\n";
echo "11111111\r\n";
});
echo "222222222\r\n";
最终都是显示
222222222
$result数组的值
111111111
支持 闭包么?
试过没成功
workerman/redis get可以支持闭包
这个闭包我试过,搞了好久,现在一试就好了,非常感谢 li914
不会异步就用redis扩展同步用法吧,看手册里workerman/redis用于subscribe订阅,除此之外建议用redis扩展。