>  기사  >  데이터 베이스  >  Pagoda의 ThinkPHP 프레임워크에서 Redis를 사용하는 방법은 무엇입니까?

Pagoda의 ThinkPHP 프레임워크에서 Redis를 사용하는 방법은 무엇입니까?

王林
王林앞으로
2023-06-02 20:31:01992검색

Redis는 일반적으로 사용되는 비관계형 데이터베이스로 주로 데이터 캐싱에 사용됩니다. 데이터는 키-값 형식으로 저장되며 키 값은 서로 매핑됩니다. 데이터 저장 방식이 MySQL과 다르므로 데이터를 메모리에 저장하므로 데이터 읽기 속도가 상대적으로 빠르며 높은 동시성에 매우 좋습니다.

Redis 설치에 관해서는 Redis를 설치하기 위해 서버나 가상 머신에 pagoda 패널을 설치해야 Redis를 매우 쉽게 사용할 수 있습니다. Redis를 설치할 때 Redis 소프트웨어를 설치해야 할 뿐만 아니라 PHP도 입력해야 한다는 점을 기억하세요. redis를 설치하기 위해 프로젝트에서 사용하는 버전을 확장한 다음 redis 소프트웨어를 엽니다

1. 먼저 파고다의 설치 패널에서 redis를 찾아 클릭하여 설치합니다.

Pagoda의 ThinkPHP 프레임워크에서 Redis를 사용하는 방법은 무엇입니까?

2. Redis 설치 후 설정을 클릭하고 비밀번호를 설정하세요

3. PHP 환경에서 Redis 확장 프로그램을 설치하세요

웹사이트에서 사용하는 PHP 버전의 Redis 확장 프로그램을 꼭 설치하세요.

플러그인 만들기

ThinkPHP 루트 디렉터리의 확장 폴더에 RedisPackage.php 파일을 만듭니다. 내용은 다음과 같습니다.

<?php
 
class RedisPackage
{
    protected static $handler = null;
    protected $options = [
        &#39;host&#39; => &#39;127.0.0.1&#39;,
        &#39;port&#39; => 6379,
        &#39;password&#39; => &#39;这是你是之前设置的redis密码&#39;,
        &#39;select&#39; => 0,
        &#39;timeout&#39; => 20,//关闭时间 0:代表不关闭
        &#39;expire&#39; => 0,
        &#39;persistent&#39; => false,
        &#39;prefix&#39; => &#39;&#39;,
    ];
 
    public function __construct($options = [])
    {
        if (!extension_loaded(&#39;redis&#39;)) {   //判断是否有扩展(如果你的apache没reids扩展就会抛出这个异常)
            throw new \BadFunctionCallException(&#39;not support: redis&#39;);
        }
        if (!empty($options)) {
            $this->options = array_merge($this->options, $options);
        }
        $func = $this->options[&#39;persistent&#39;] ? &#39;pconnect&#39; : &#39;connect&#39;;     //判断是否长连接
        self::$handler = new \Redis;
        self::$handler->$func($this->options[&#39;host&#39;], $this->options[&#39;port&#39;], $this->options[&#39;timeout&#39;]);
 
        if (&#39;&#39; != $this->options[&#39;password&#39;]) {
            self::$handler->auth($this->options[&#39;password&#39;]);
        }
 
        if (0 != $this->options[&#39;select&#39;]) {
            self::$handler->select($this->options[&#39;select&#39;]);
        }
    }
 
    /**
     * 写入缓存
     * @param string $key 键名
     * @param string $value 键值
     * @param int $exprie 过期时间 0:永不过期
     * @return bool
     */
    public static function set($key, $value, $exprie = 0)
    {
        if ($exprie == 0) {
            $set = self::$handler->set($key, $value);
        } else {
            $set = self::$handler->setex($key, $exprie, $value);
        }
        return $set;
    }
 
    /**
     * 读取缓存
     * @param string $key 键值
     * @return mixed
     */
    public static function get($key)
    {
        $fun = is_array($key) ? &#39;Mget&#39; : &#39;get&#39;;
        return self::$handler->{$fun}($key);
    }
 
    /**
     * 获取值长度
     * @param string $key
     * @return int
     */
    public static function lLen($key)
    {
        return self::$handler->lLen($key);
    }
 
    /**
     * 将一个或多个值插入到列表头部
     * @param $key
     * @param $value
     * @return int
     */
    public static function LPush($key, $value, $value2 = null, $valueN = null)
    {
        return self::$handler->lPush($key, $value, $value2, $valueN);
    }
 
    /**
     * 移出并获取列表的第一个元素
     * @param string $key
     * @return string
     */
    public static function lPop($key)
    {
        return self::$handler->lPop($key);
    }
 
 
}

RedisPackage 클래스의 정의 배열 $options는 다음과 같습니다.

파일을 입력하세요.

import(&#39;RedisPackage&#39;, EXTEND_PATH);

Redis

#设置
\RedisPackage::set(&#39;要设置的key&#39;,&#39;这是value&#39;);
 
#获取
$key = \RedisPackage::get(&#39;已设置的key&#39;));

Redis 확장 프로그램을 사용하세요

redis에 연결

$redis = new \Redis(); 
//创建一个redis对象,下面可以直接使用$redis访问到redis对象

$redis->connect(&#39;127.0.0.1&#39;, 6379);
//连接redis数据库,127.0.0.1表示本地(如果线上redis和php目录在同一个IP,则一样使用127.0.0.1),6379为redis端口号,若线上没有修改则默认是这个

연결 성공 여부를 확인하세요(쓰기 가능 여부, 확인만 가능)

$redis ->set( "test" , "redis 连接成功");
echo $redis ->get( "test");

exists() 키가 존재하는지 확인합니다. 매개변수는 키 값을 저장하는 키 이름

$redis->exists(&#39;active_worker_list&#39;)

set()

set()입니다. 첫 번째 매개변수는 사용자가 정의한 키 이름입니다. 이 방법을 통해 데이터 이름을 지정한 후 캐시에 저장됩니다

$result = $redis->set(&#39;active_worker_list&#39;,$r)

우리는 배열 형태의 데이터를 저장하는 경우가 많지만 Redis는 배열 읽기 및 쓰기를 지원하지 않으므로 변환해야 합니다. json 형식으로 배열

$result = $redis->set(&#39;active_worker_list&#39;,json_encode($r,true))

get()

get()을 사용하여 키 값을 가져옵니다. 매개변수는 키 이름입니다. 이 방법을 통해 해당 키에 저장된 값을 얻을 수 있습니다.

$result = $redis->get(&#39;active_worker_list&#39;)

설정과 동일합니다. 배열 형태의 데이터가 필요할 때가 있어서 json 형식의 데이터를 배열로 변환해야 합니다

$result = json_decode($redis->get(&#39;active_worker_list&#39;),true);

del()

때때로 어떤 이유로(단순히 값을 할당하면 할당이 잘못된 것일 수도 있습니다...) 키 값을 삭제해야 하므로 del()을 사용해야 하고, 매개변수는 키 이름입니다

$redis->del(&#39;active_worker_list&#39;);

위 내용은 Pagoda의 ThinkPHP 프레임워크에서 Redis를 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 yisu.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제