Laravel - Database - Redis

# 前言

學習一個框架, Ray 的想法是, 在深入理解底層實作的原理之前, 應該先知道這個框架的 使用方法; 先學習怎麼使用這個前人造的輪子, 再學習怎麼樣一個輪子。
所以本篇文章重點在於細讀官方文件, 並將內容理解後以 Q&A 的方式記錄下來, 加速學習以及查詢。

# Introduction

Laravel 文件上推薦使用 PhpRedis 或 predis?

PhpRedis




# Configuration

以下的 Laravel example code 的意思是?
  • Example:

    <?php
    'redis' => [

    'client' => env('REDIS_CLIENT', 'phpredis'),

    'default' => [
    'host' => env('REDIS_HOST', '127.0.0.1'),
    'password' => env('REDIS_PASSWORD', null),
    'port' => env('REDIS_PORT', 6379),
    'database' => env('REDIS_DB', 0),
    ],

    'cache' => [
    'host' => env('REDIS_HOST', '127.0.0.1'),
    'password' => env('REDIS_PASSWORD', null),
    'port' => env('REDIS_PORT', 6379),
    'database' => env('REDIS_CACHE_DB', 1),
    ],

    ],
  • Answer:

    <?php
    'redis' => [

    // 使用的 redis client, 預設 phpredis
    'client' => env('REDIS_CLIENT', 'phpredis'),

    'default' => [
    // host, 預設 127.0.0.1
    'host' => env('REDIS_HOST', '127.0.0.1'),
    // password, 預設 null
    'password' => env('REDIS_PASSWORD', null),
    // port, 預設 6379
    'port' => env('REDIS_PORT', 6379),
    // database, 預設 0
    'database' => env('REDIS_DB', 0),
    ],

    'cache' => [
    'host' => env('REDIS_HOST', '127.0.0.1'),
    'password' => env('REDIS_PASSWORD', null),
    'port' => env('REDIS_PORT', 6379),
    'database' => env('REDIS_CACHE_DB', 1),
    ],

    ],
以下的 Laravel example code 的意思是?
  • Example:

    <?php
    'redis' => [

    'client' => env('REDIS_CLIENT', 'phpredis'),

    'default' => [
    'url' => 'tcp://127.0.0.1:6379?database=0',
    ],

    'cache' => [
    'url' => 'tls://user:password@127.0.0.1:6380?database=1',
    ],

    ],
  • Answer:
    預設會需要定義 host, password, port, database, 可用 url 方式定義全部


# Configuring The Connection Scheme

以下的 Laravel example code 的意思是?
  • Example:

    <?php
    'redis' => [

    'client' => env('REDIS_CLIENT', 'phpredis'),

    'default' => [
    // 這行意思是?
    'scheme' => 'tls',
    'host' => env('REDIS_HOST', '127.0.0.1'),
    'password' => env('REDIS_PASSWORD', null),
    'port' => env('REDIS_PORT', 6379),
    'database' => env('REDIS_DB', 0),
    ],

    ],
  • Answer:
    預設使用 tcp 方式, 可自訂為 TLS


# Configuring Clusters

以下的 Laravel example code 的意思是?
  • Example:

    <?php
    'redis' => [

    'client' => env('REDIS_CLIENT', 'phpredis'),

    // 這行意思是?
    'clusters' => [
    'default' => [
    [
    'host' => env('REDIS_HOST', 'localhost'),
    'password' => env('REDIS_PASSWORD', null),
    'port' => env('REDIS_PORT', 6379),
    'database' => 0,
    ],
    ],
    ],

    ],
  • Answer:
    如果使用 Redis Cluster 的話, 需定義於 ‘clusters’ 參數之下


# Predis


# PhpRedis




# Interacting With Redis


# Pipelining Commands




# Pub / Sub

Tree 資料結構簡介 Tree 實作 in PHP

留言

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×