이 글은 주로 PHP 프레임워크 CodeIgniter에서 redis를 사용하는 방법을 소개합니다. 이제 필요한 친구들이 참고할 수 있도록 공유하겠습니다. 이 기사의 예에서는 PHP 프레임워크 CodeIgniter가 redis를 사용하는 방법을 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 자세한 내용은 다음과 같습니다.
1. redis를 설치하세요 우선, redis 서비스(redis 데이터베이스)가 컴퓨터에 설치되어 실행되어야 합니다. 자세한 내용은 다른 문서를 참조하세요: http://www.jb51.net/article/138173.htm
2.phpredis를 설치하세요
① 다운로드프로젝트 주소: https://github.com/phpredis/phpredis (무시해도 됩니다) 여기서는 Windows 버전의 phpredis를 직접 컴파일해야 한다고 언급합니다.
제가 겪은 우회로에 대해 이야기하겠습니다. http://windows.php.net/downloads/pecl/snaps/redis/20160319/에서 다운로드했지만(무시해도 됩니다) 여전히 제대로 이해할 수 없습니다. . 사실 이 vc14는 php 버전 7.0의 경우 버전 7.1이 필요하므로 항상 틀리며 다음을 찾을 때까지 문제를 찾을 수 없습니다.
http://pecl.php.net/package-stats.php
해당 버전을 클릭하세요:
http://pecl.php.net/package/redis/3.1.1/windows
7.1에 해당하는 버전을 다운로드합니다.
② 설치
다운로드하고 압축을 푼
php_redis.dll을 PHP 인터프리터의 확장 부분에 배치합니다. 그런 다음 php.ini를 열고 , ;extension=php_bz2.dll
,在其上面添加extension=php_redis.dll
을 찾으세요.
즉, 확장 구성 영역의 헤드에 redis 구성을 추가합니다. 설치가 완료되었습니다.
3 구성 정보 보기
서버나 컴퓨터를 다시 시작하고 index.php 경로 아래에 보기 페이지를 추가하세요: phpinfo.php, 그리고 다음을 추가하세요:
<?php echo phpinfo(); ?>
그런 다음
http://yourdomain.com/phpinfo.php를 방문하여 구성 정보를 확인하고 성공적인 Redis 구성을 나타내는 정보를 찾으면 구성이 완료된 것입니다.
3. PHP 기본 방식으로 Redis를 운영하세요
// 原生redis类库,不需要config/redis.php $redis = new Redis(); $redis->connect('127.0.0.1',6379); //$redis->set('key10','xx10',20);//第三个参数是存续时间,单位是秒,如果不填则为永久 echo $redis->get('key10');
4. redis.php 구성 myApplication/config:
<?php defined('BASEPATH') OR exit('No direct script access allowed'); /** * Created by PhpStorm. * Date: 2017/2/9 * Time: 13:32 */ $config['socket_type'] = 'tcp'; $config['host'] = '127.0.0.1'; $config['password'] = NULL; $config['port'] = 6379; $config['timeout'] = 0; ?>
아래에 redis.php 파일을 만듭니다. 이 구성 파일은 프레임워크의 redis 라이브러리를 사용하든 아래의 사용자 정의 redis 라이브러리를 사용하든 필수입니다.
redis.php를 구성하는 것 외에도 다음도 구성해야 합니다. 우리가 사용하는 캐시 유형은 application/config/config.php에 구성되어 있습니다. 기본값은 다음과 같습니다:
$config['sess_driver'] = 'files'; $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 7200; $config['sess_save_path'] = NULL; $config['sess_match_ip'] = FALSE; $config['sess_time_to_update'] = 300; $config['sess_regenerate_destroy'] = FALSE;
Redis를 사용한다면 다음과 같이 구성해야 합니다:
$config['sess_driver'] = 'redis'; $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 0; $config['sess_save_path'] = 'tcp://127.0.0.1:xxxx'; $config['sess_match_ip'] = FALSE; $config['sess_time_to_update'] = 600; $config['sess_regenerate_destroy'] = TRUE;
5. CI 프레임워크의 redis 라이브러리를 사용하세요
// 框架的redis库
$this->load->driver('cache');
$this->cache->redis->save('key11','xx11');//这里注意,第三个参数是时间,在自定义redis库会说明
echo $this->cache->redis->get('key11');
6. 사용자 정의 Redis 클래스 라이브러리를 사용하세요
① Rediscli_default.php
사용자 정의 redis 클래스 라이브러리는 system/libraries/Cache/drivers/Cache_redis.php에서 복사하여 Rediscli_default.php로 이름을 바꿀 수 있습니다. 클래스 이름도 Rediscli_default로 변경됩니다. 그 외에는 직접 변경할 필요가 없습니다. . myApplication/libraries/Rediscli/drivers/ 아래에 배치하세요.
② Rediscli.phpmyApplication/libraries/Rediscli/
<?php defined ( 'BASEPATH' ) or exit ( 'No direct script access allowed' ); /** * Created by PhpStorm. * Date: 2017/2/9 * Time: 20:00 */ class Rediscli extends CI_Driver_Library { public $valid_drivers; public $CI; function __construct() { $this->CI = & get_instance (); $this->valid_drivers = array ( 'default' ); } }
아래에 Rediscli.php를 생성합니다.
③ 전화// 自定义类,需要配置
$this->load->driver('rediscli');
if ($this->rediscli->default->is_supported())
{
echo $this->rediscli->default->get('key2');
}
4 시간
이 사용자 정의 Redis 라이브러리는 프레임워크 라이브러리와 동일하므로 여기서는 이에 중점을 두겠습니다.
$this->cache->redis->save('key11','xx11',1000);
세 번째 파라미터는 시간이며, 생략할 수 없는 값입니다. 함수를 보면 이 매개변수의 기본값이 60초이며, 영구적이지 않으므로 이 매개변수를 생략할 수 없음을 알 수 있습니다.
7. 이 상황을 주의하세요
이 코드의 의미는 redis를 이용해 먼저 저장하고, 찾지 못하면 텍스트 저장소를 이용하라는 것이다. 텍스트 파일은 myApplication/cache에 저장되어 있으며 각 키에는 하나의 텍스트가 있습니다.
오류가 보고되지 않기 때문에 한동안 이 데이터가 어디에 있는지 모를 수도 있습니다.
결국, redis는 더 빠른 속도를 위해 사용됩니다. 관련 권장 사항: 위 내용은 PHP 프레임워크 CodeIgniter에서 Redis를 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!// 文本存储
$this->load->driver('cache',array('adapter'=>'redis','backup'=>'file'));
$this->cache->save('key5','xx5',10000);
echo $this->cache->get('key5');//xx5