찾다
백엔드 개발PHP 튜토리얼PHP와 Redis 및 간단한 애플리케이션 시작하기

PHP와 Redis 및 간단한 애플리케이션 시작하기

Apr 13, 2018 pm 04:05 PM
phpredis애플리케이션

이 글은 PHP와 Redis의 간단한 응용에 대해 공유합니다. 필요한 친구들이 참고할 수 있습니다.

1. 실험 환경: win10 + redis3.2 + php7
2 , php -redis/redis/redis 그래픽 관리 도구 및 기타 설치에서는 이 단계를 건너뜁니다.
3 일반적으로 사용되는 5가지 Redis 데이터 유형은 자세히 설명하지 않습니다.
참조: http://www.runoob.com /redis/r...
Four.php + mysql + redis 단순 애플리케이션
데이터베이스 이름: redis 데이터 테이블: redis_user
PHP 작업 시뮬레이션 Mysql + redis CURD 작업

1.config.php 구성 파일

<?php
$config = array(
    &#39;mysql&#39;=>array(
        &#39;host&#39;=>&#39;127.0.0.1&#39;,
        &#39;user&#39;=>&#39;root&#39;,
        &#39;pass&#39;=>&#39;root&#39;,
        &#39;dbname&#39;=>&#39;redis&#39;,
        &#39;prefix&#39;=>&#39;redis_&#39;
    ),
    &#39;redis&#39;=>array(
        &#39;host&#39;=>&#39;127.0.0.1&#39;,
        &#39;port&#39;=>6379
    )
);

.php 항목 파일은 Mysql

<?php
reqiure_once(&#39;Mysql.php&#39;);

//增加数据
// echo Mysql::getInstance()->table(&#39;user&#39;)->insert([&#39;user&#39;=>&#39;张三&#39;,&#39;pass&#39;=>md5(&#39;123456&#39;),&#39;create_time&#39;=>date(&#39;Y-m-d H:i:s&#39;)]);

//删除数据
// echo Mysql::getInstance()->table(&#39;user&#39;)->where(array(&#39;id&#39;=>30))->delete();

//查看单条数据
// $data = Mysql::getInstance()->table(&#39;user&#39;)->where(array(&#39;id&#39;=>&#39;30&#39;))->find();
// print_r($data);

//查找所有数据
// $all = Mysql::getInstance()->table(&#39;user&#39;)->field(&#39;id,user&#39;)->select();
$all = Mysql::getInstance()->table(&#39;user&#39;)->select();
print_r($all);

//修改数据
// echo Mysql::getInstance()->table(&#39;user&#39;)->where(array(&#39;id&#39;=>30))->update([&#39;user&#39;=>&#39;张三adfadfasdf11111111&#39;,&#39;pass&#39;=>md5(&#39;123456aaa&#39;)]);
?>

PHP와 Redis 및 간단한 애플리케이션 시작하기
PHP와 Redis 및 간단한 애플리케이션 시작하기
PHP와 Redis 및 간단한 애플리케이션 시작하기

Mysql.php 파일

<?php
class Mysql
{
    static  $instance;
    private $conn;
    private $redis;
    private $options = array();


    //单例模式
    private function __construct()
    {
        error_reporting(E_ALL^E_NOTICE^E_WARNING);
        require_once(__DIR__.&#39;/Config.php&#39;);
        $conn = mysqli_connect($config[&#39;mysql&#39;][&#39;host&#39;],$config[&#39;mysql&#39;][&#39;user&#39;],$config[&#39;mysql&#39;][&#39;pass&#39;],$config[&#39;mysql&#39;][&#39;dbname&#39;]);
        if(mysqli_connect_errno($conn)) {
            echo "连接Mysql失败:".mysqli_connect_error();
            exit;
        }
        mysqli_query($conn,&#39;set names utf8&#39;);
        $this->options[&#39;prefix&#39;] = $config[&#39;mysql&#39;][&#39;prefix&#39;];
        $this->conn = $conn;
        $this->redis = new Redis();
        $this->redis->connect($config[&#39;redis&#39;][&#39;host&#39;],$config[&#39;redis&#39;][&#39;port&#39;]);
    }

    //获取对象实例
    static function getInstance()
    {
        if(self::$instance) {
            return self::$instance;
        } else {
            self::$instance = new self();
            return self::$instance;
        }
    }

    //设置表名
    public function table(string $table)
    {
        $this->options[&#39;table&#39;] = &#39;`&#39;.$this->options[&#39;prefix&#39;].$table.&#39;`&#39;;
        return $this;
    }

    //设置redis键名
    public function redis(string $key)
    {
        $this->options[&#39;key&#39;] = $key;
        return $this;
    }

    //设置条件
    public function where(array $where)
    {
        $condition = &#39;&#39;;
        $and = count($where) > 1 ? &#39; and &#39; : &#39;&#39;;
        foreach ($where as $key => $value) {
            if($key == &#39;id&#39;) {$this->options[&#39;user_id&#39;] = $value;}
            if(strpos($key,&#39;:&#39;)) {
                $arr = explode(&#39;:&#39;, $key);
                $condition .= &#39;`&#39;.$arr[&#39;0&#39;].&#39;` &#39;.$arr[&#39;1&#39;]. &#39; "&#39;.$value.&#39;" &#39; . $and ; 
            } else {
                $condition .= &#39;`&#39;.$key.&#39;` = &#39; .&#39;"&#39;.$value.&#39;"&#39; .$and  ; 
            }
        }
        $this->options[&#39;where&#39;] = rtrim($condition,&#39; and &#39;);
        return $this;
    }

    //设置字段
    public function field(string $field)
    {
        $this->options[&#39;field&#39;] = $field;
        return $this;
    }
    
    //增加数据
    public function insert(array $data)
    {
        $key = &#39;`&#39;.implode(&#39;`,`&#39;, array_keys($data)).&#39;`&#39;;
        $value = &#39;"&#39;.implode(&#39;","&#39;, $data).&#39;"&#39;;
        $sql = "insert into {$this->options[&#39;table&#39;]} (".$key.") values (".$value.");";
        if( mysqli_query($this->conn,$sql) ) {
            $user_id = $this->conn->insert_id;
            $data[&#39;id&#39;] = $user_id;
            //以hash类型存储
            $this->redis->hset($this->options[&#39;table&#39;],$user_id,json_encode($data));
            return $user_id;
        } else {
            return 0;
        }
    }

    //删除数据
    public function delete()
    {
        $where = $this->options[&#39;where&#39;] ? $this->options[&#39;where&#39;] : &#39;1&#39;;
        $sql = "delete from {$this->options[&#39;table&#39;]} where {$where};";
        if(mysqli_query($this->conn,$sql)) {
            $this->redis->hdel($this->options[&#39;table&#39;],$this->options[&#39;user_id&#39;]);
            return 1;
        } else {
            return 0;
        }
    }

    //修改数据
    public function update(array $data)
    {
        $condition = &#39;&#39;;
        $where = $this->options[&#39;where&#39;] ? $this->options[&#39;where&#39;] : &#39;1&#39;;
        foreach ($data as $key => $value) {
            $condition .= ", `".$key."` = &#39;".$value."&#39;";
        }
        $condition = substr($condition, 1);
        $sql = " update {$this->options[&#39;table&#39;]} set {$condition} where {$where} ; ";
        if(mysqli_query($this->conn,$sql)) {
            $hashData = (array)json_decode($this->redis->hget($this->options[&#39;table&#39;],$this->options[&#39;user_id&#39;]));
            foreach ($data as $key => $value) {
                $hashData[$key] = $value;
            }
            $this->redis->hset($this->options[&#39;table&#39;],$this->options[&#39;user_id&#39;],json_encode($hashData));
            return 1;
        } else {
            return 0;
        }
    }


    //查找单条数据
    public function find()
    {
        $field  = $this->options[&#39;field&#39;] ? $this->options[&#39;field&#39;] : &#39;*&#39;;
        $where = $this->options[&#39;where&#39;] ? $this->options[&#39;where&#39;] : &#39;1&#39;;
        if($this->options[&#39;user_id&#39;]) {
            echo &#39;从redis获取数据<pre class="brush:php;toolbar:false">&#39;;
            $data = (array)json_decode($this->redis->hget($this->options[&#39;table&#39;],$this->options[&#39;user_id&#39;]));
            if($field != &#39;*&#39;) {
                $field = explode(&#39;,&#39;, $field);
                foreach ($field as $value) {
                    $arr[$value] = $data[$value];
                    $arr[&#39;typ&#39;] = &#39;redis&#39;;
                }
                return $arr;
                
            }
            return $data;
            
        } else {
            
            $sql = " select {$field} from {$this->options[&#39;table&#39;]} where {$where}; ";
            if($query = mysqli_query($this->conn,$sql)) {
                return mysqli_fetch_assoc($query);
            } else {
                return array();
            }
        }
    }
    //查找所有数据
    public function select()
    {
        $data = array();
        $field  = $this->options[&#39;field&#39;] ? $this->options[&#39;field&#39;] : &#39;*&#39;;
        $hashData = $this->redis->hgetall($this->options[&#39;table&#39;]);
        if($hashData) {
            if($field != &#39;*&#39;) { 
                $field = explode(&#39;,&#39;, $field);
            }
            foreach ($hashData as $key => $value) {
                $data[$key] = array();
                $values = (array)json_decode($value);
                if($field != &#39;*&#39;) {
                    foreach ($field as $k => $v) {
                        $data[$key][$v] = $values[$v];
                    }
                }else{
                    $data[$key] = $values;
                }
            }
            echo &#39;从redis获取数据<pre class="brush:php;toolbar:false">&#39;;
        } else {
            $sql = " select {$field} from {$this->options[&#39;table&#39;]} ; ";
            if($query = mysqli_query($this->conn,$sql)) {
                while ($row = mysqli_fetch_assoc($query)) {
                    $data[] = $row;
                }
            }
        }
        return $data;
    }

    

    public function __destruct()
    {
        mysqli_close($this->conn);
    }
}

운영 시 기본 키 ID를 사용하시기 바랍니다. ~

위 내용은 PHP와 Redis 및 간단한 애플리케이션 시작하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
PHP와 Python : 다른 패러다임이 설명되었습니다PHP와 Python : 다른 패러다임이 설명되었습니다Apr 18, 2025 am 12:26 AM

PHP는 주로 절차 적 프로그래밍이지만 객체 지향 프로그래밍 (OOP)도 지원합니다. Python은 OOP, 기능 및 절차 프로그래밍을 포함한 다양한 패러다임을 지원합니다. PHP는 웹 개발에 적합하며 Python은 데이터 분석 및 기계 학습과 같은 다양한 응용 프로그램에 적합합니다.

PHP와 Python : 그들의 역사에 깊은 다이빙PHP와 Python : 그들의 역사에 깊은 다이빙Apr 18, 2025 am 12:25 AM

PHP는 1994 년에 시작되었으며 Rasmuslerdorf에 의해 개발되었습니다. 원래 웹 사이트 방문자를 추적하는 데 사용되었으며 점차 서버 측 스크립팅 언어로 진화했으며 웹 개발에 널리 사용되었습니다. Python은 1980 년대 후반 Guidovan Rossum에 의해 개발되었으며 1991 년에 처음 출시되었습니다. 코드 가독성과 단순성을 강조하며 과학 컴퓨팅, 데이터 분석 및 기타 분야에 적합합니다.

PHP와 Python 중에서 선택 : 가이드PHP와 Python 중에서 선택 : 가이드Apr 18, 2025 am 12:24 AM

PHP는 웹 개발 및 빠른 프로토 타이핑에 적합하며 Python은 데이터 과학 및 기계 학습에 적합합니다. 1.PHP는 간단한 구문과 함께 동적 웹 개발에 사용되며 빠른 개발에 적합합니다. 2. Python은 간결한 구문을 가지고 있으며 여러 분야에 적합하며 강력한 라이브러리 생태계가 있습니다.

PHP 및 프레임 워크 : 언어 현대화PHP 및 프레임 워크 : 언어 현대화Apr 18, 2025 am 12:14 AM

PHP는 현대화 프로세스에서 많은 웹 사이트 및 응용 프로그램을 지원하고 프레임 워크를 통해 개발 요구에 적응하기 때문에 여전히 중요합니다. 1.PHP7은 성능을 향상시키고 새로운 기능을 소개합니다. 2. Laravel, Symfony 및 Codeigniter와 같은 현대 프레임 워크는 개발을 단순화하고 코드 품질을 향상시킵니다. 3. 성능 최적화 및 모범 사례는 응용 프로그램 효율성을 더욱 향상시킵니다.

PHP의 영향 : 웹 개발 및 그 이상PHP의 영향 : 웹 개발 및 그 이상Apr 18, 2025 am 12:10 AM

phphassignificallyimpactedwebdevelopmentandextendsbeyondit

스칼라 유형, 반환 유형, 노조 유형 및 무효 유형을 포함한 PHP 유형의 힌트 작업은 어떻게 작동합니까?스칼라 유형, 반환 유형, 노조 유형 및 무효 유형을 포함한 PHP 유형의 힌트 작업은 어떻게 작동합니까?Apr 17, 2025 am 12:25 AM

PHP 유형은 코드 품질과 가독성을 향상시키기위한 프롬프트입니다. 1) 스칼라 유형 팁 : PHP7.0이므로 int, float 등과 같은 기능 매개 변수에 기본 데이터 유형을 지정할 수 있습니다. 2) 반환 유형 프롬프트 : 기능 반환 값 유형의 일관성을 확인하십시오. 3) Union 유형 프롬프트 : PHP8.0이므로 기능 매개 변수 또는 반환 값에 여러 유형을 지정할 수 있습니다. 4) Nullable 유형 프롬프트 : NULL 값을 포함하고 널 값을 반환 할 수있는 기능을 포함 할 수 있습니다.

PHP는 객체 클로닝 (클론 키워드) 및 __clone 마법 방법을 어떻게 처리합니까?PHP는 객체 클로닝 (클론 키워드) 및 __clone 마법 방법을 어떻게 처리합니까?Apr 17, 2025 am 12:24 AM

PHP에서는 클론 키워드를 사용하여 객체 사본을 만들고 \ _ \ _ Clone Magic 메소드를 통해 클로닝 동작을 사용자 정의하십시오. 1. 복제 키워드를 사용하여 얕은 사본을 만들어 객체의 속성을 복제하지만 객체의 속성은 아닙니다. 2. \ _ \ _ 클론 방법은 얕은 복사 문제를 피하기 위해 중첩 된 물체를 깊이 복사 할 수 있습니다. 3. 복제의 순환 참조 및 성능 문제를 피하고 클로닝 작업을 최적화하여 효율성을 향상시키기 위해주의를 기울이십시오.

PHP vs. Python : 사용 사례 및 응용 프로그램PHP vs. Python : 사용 사례 및 응용 프로그램Apr 17, 2025 am 12:23 AM

PHP는 웹 개발 및 컨텐츠 관리 시스템에 적합하며 Python은 데이터 과학, 기계 학습 및 자동화 스크립트에 적합합니다. 1.PHP는 빠르고 확장 가능한 웹 사이트 및 응용 프로그램을 구축하는 데 잘 작동하며 WordPress와 같은 CMS에서 일반적으로 사용됩니다. 2. Python은 Numpy 및 Tensorflow와 같은 풍부한 라이브러리를 통해 데이터 과학 및 기계 학습 분야에서 뛰어난 공연을했습니다.

See all articles

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

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

뜨거운 도구

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구

SublimeText3 Linux 새 버전

SublimeText3 Linux 새 버전

SublimeText3 Linux 최신 버전

Atom Editor Mac 버전 다운로드

Atom Editor Mac 버전 다운로드

가장 인기 있는 오픈 소스 편집기

SublimeText3 영어 버전

SublimeText3 영어 버전

권장 사항: Win 버전, 코드 프롬프트 지원!

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse용 SAP NetWeaver 서버 어댑터

Eclipse를 SAP NetWeaver 애플리케이션 서버와 통합합니다.