我在Laravel框架的Redis中遇到问题。 Actullay。我几乎做了所有事情。我正在像这样在Redis中获取数据:-
use Illuminate\Support\Facades\Redis;
public function redisSet(){
Redis::set('name', 'Taylor');
echo "redis set successfully"; die;
}
public function redisget(){
echo Redis::get('name'); die;
}
现在有两个网址,如下所示:-
http://localhost:8000/redis-set
http://localhost:8000/redis-get
以上两个网址都可以正常工作。现在的问题是,当我在Google chrome中点击设置的网址并尝试进入mozilla firefox时,它也在mozilla firefox中打印。那一定不会发生。如果在Google chrome中设置redis,则只能在google chrome中获取,而不是其他浏览器。见下图:
现在,当我在uc浏览器中点击get url时。它的数据正在显示。但一定不能发生。因为我已经在Google Chrome中设置了Redis。
下面是我的database.php文件:-
'redis' => [
'client' => 'predis',
'default' => [
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', 6379),
'database' => 0,
],
],
我的环境文件:-
BROADCAST_DRIVER=log
CACHE_DRIVER=redis
SESSION_DRIVER=redis
SESSION_LIFETIME=120
QUEUE_DRIVER=sync
REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
我还安装了larvel的prdeis。请帮助我如何解决此问题。当我在其他系统中访问相同的URL时,我的系统已与网络连接,它也显示redis数据。请帮助我解决此问题。
答案 0 :(得分:1)
Redis是类似于mysql的服务器端存储服务。它与php而非浏览器进行通讯,并返回您之前存储的内容。
如果要为不同的用户保存不同的数据,请尝试会话并使用Redis作为会话驱动程序。 HTTP Session
答案 1 :(得分:1)
对于您要寻找的这种行为,请使用会话而不是Redis。因为Redis是一个数据库,可以在Laravel中用作会话驱动程序
public function redisSet(){
Session::set('name', 'Taylor');
echo "redis set successfully"; die;
}
public function redisget(){
echo Session::get('name'); die;
}
答案 2 :(得分:0)
Redis是服务器端服务,因此无论您使用哪种浏览器。您可以使用$request->header('User-Agent');
来确定使用哪种浏览器,但这不是最好的方法。我建议您使用cookie /会话,而不是使用用户代理标头,因为它对于每个浏览器都是独立的。然后,您将能够使用给定其来源的Redis数据。
答案 3 :(得分:0)
正如我在评论中提到的那样,redis在您的服务器上起作用,而不是在用户浏览器上起作用。如果要为不同的浏览器存储不同的值。您需要先检查用户浏览器,然后使用其他密钥对其进行存储。
我建议您使用此browser detect package.,您可以通过作曲家轻松安装。
安装软件包后;
switch(Browser::browserFamily()){
case "Chrome":
Redis::set('chrome', 'Taylor');
break;
case "Firefox":
Redis::set('firefox', 'Hasan');
break;
case "Opera":
Redis::set('opera', 'Kunal');
break;
// etc
}
然后,您可以轻松地使用它们的键来访问这些值