Laravel Framework에서 Redis 연결 공유 및 select
메소드의 영향
Laravel Framework에서 Redis를 사용할 때 개발자는 문제가 발생할 수 있습니다. 구성 파일을 통해 얻은 Redis 연결은 select
메소드를 사용하여 데이터베이스를 전환하기 전에 얻은 동일한 연결에 영향을 미칩니다. 이 기사는이 문제를 분석하고 솔루션을 제공합니다.
문제 설명 : 코드가 Redis::connection('config1')
통해 'config1'이라는 Redis 연결을 얻고 다음과 같습니다.
'config1'=> [ '호스트'=> 'xx', '암호'=> 'xx', '포트'=> 'xx', '데이터베이스'=> 2 ]]
'config1'연결을 두 번 가져 와서 연결 중 하나에서 select(3)
수행하여 데이터베이스 3으로 전환하십시오.
$ a = redis :: connection ( 'config1'); $ b = redis :: connection ( 'config1'); $ b-> select (3); $ a-> set ( 'test1', 1); // 'test1'은 데이터베이스 3, 예상되지 않음 데이터베이스 2에 씁니다.
예상 데이터가 데이터베이스 2에 기록되어야하기 때문에 $a->set('test1', 1)
의 결과는 놀랍습니다. 이는 Laravel 프레임 워크의 Redis 연결 관리 메커니즘으로 인해 $a
와 $b
실제로 동일한 Redis 연결 객체를 참조하기 때문입니다.
Laravel 프레임 워크의 \Illuminate\Support\Facades\Redis
facade는 getFacadeAccessor
메소드를 통해 redis
반환하며 redis
\Illuminate\Redis\RedisManager
에 의해 구현됩니다. \Illuminate\Redis\RedisManager
의 connection
방법은 첫 번째 구문 분석 후 연결을 캐시하며 후속 통화는 동일한 Redis 인스턴스를 직접 반환합니다.
따라서이 문제를 피하기 위해 독립형 연결을 얻으려면 Redis::connection()
여러 번 호출 할 수 없습니다. 솔루션은 Laravel의 resolve
메소드를 사용하여 새 연결 인스턴스를 작성하는 것입니다.
$ a = app ( 'redis')-> connection ( 'config1'); $ b = app ( 'redis')-> connection ( 'config1'); $ b-> select (3); $ a-> set ( 'test1', 1); // 'test1'은 이제 데이터베이스 2에 씁니다
app('redis')->connection('config1')
사용하여 매번 새 연결 인스턴스를 생성하여 동일한 기본 Redis 연결을 공유하는 문제를 피하고 각 연결에 독립적 인 데이터베이스 선택이 있는지 확인하십시오. 이것은 select
메소드가 다른 연결에 영향을 미친다는 문제를 해결합니다.
위 내용은 Laravel Redis Connection 공유 : 선택 메소드가 다른 연결에 영향을 미치는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于单点登录的相关问题,单点登录是指在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于Laravel的生命周期相关问题,Laravel 的生命周期从public\index.php开始,从public\index.php结束,希望对大家有帮助。

在laravel中,guard是一个用于用户认证的插件;guard的作用就是处理认证判断每一个请求,从数据库中读取数据和用户输入的对比,调用是否登录过或者允许通过的,并且Guard能非常灵活的构建一套自己的认证体系。

laravel中asset()方法的用法:1、用于引入静态文件,语法为“src="{{asset(‘需要引入的文件路径’)}}"”;2、用于给当前请求的scheme前端资源生成一个url,语法为“$url = asset('前端资源')”。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于中间件的相关问题,包括了什么是中间件、自定义中间件等等,中间件为过滤进入应用的 HTTP 请求提供了一套便利的机制,下面一起来看一下,希望对大家有帮助。

本篇文章给大家带来了关于laravel的相关知识,其中主要介绍了关于使用中间件记录用户请求日志的相关问题,包括了创建中间件、注册中间件、记录用户访问等等内容,下面一起来看一下,希望对大家有帮助。

laravel路由文件在“routes”目录里。Laravel中所有的路由文件定义在routes目录下,它里面的内容会自动被框架加载;该目录下默认有四个路由文件用于给不同的入口使用:web.php、api.php、console.php等。

在laravel中,scope用于处理模型中的数据,在模型中可以定义scope开头方法,这类方法可以通过模型直接调用,被称为查询作用域,语法为“public function scope首字母大写单词($query){...}”。


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

드림위버 CS6
시각적 웹 개발 도구

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

뜨거운 주제



