Predis: `SELECT` ์‹คํŒจ: ERR ์œ ํšจํ•˜์ง€ ์•Š์€ DB ์ธ๋ฑ์Šค BUG db๋Š” db0์ž…๋‹ˆ๋‹ค.

์— ๋งŒ๋“  2016๋…„ 11์›” 11์ผ  ยท  7์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: predis/predis

์šฐ๋ฆฌ๋Š” laravel predis๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์ง€๋งŒ ์ด์ œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
SELECT ์‹คํŒจ: ERR ์œ ํšจํ•˜์ง€ ์•Š์€ DB ์ธ๋ฑ์Šค

๋‚˜๋Š” ๋ช…๋ น ์ค„์„ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐํ•˜๊ณ  ์ž˜ ์ž‘๋™ํ•˜๊ณ  db0์„ ์‚ฌ์šฉํ•˜๊ณ  ์„ค์ •ํ•˜๊ณ  ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.
๊ทธ๋Ÿฌ๋‚˜ laravel predis์—์„œ db 0์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. " SELECT ์‹คํŒจ: ERR ์œ ํšจํ•˜์ง€ ์•Š์€ DB ์ธ๋ฑ์Šค
"; db1 ,db2 ๋กœ ๋ฐ”๊พธ๋‹ˆ......,๊ดœ์ฐฎ์•„์š”

์—ฌ๊ธฐ ๋‚ด predis ๋ฒ„์ „์ด ์žˆ์Šต๋‹ˆ๋‹ค
predis/predis v1.1.x-dev 0e17edb ์œ ์—ฐํ•˜๊ณ  ์™„๋ฒฝํ•œ ๊ธฐ๋Šฅ
๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์€ ๋‚ด redis ๋ฒ„์ „์ž…๋‹ˆ๋‹ค.
redis-server redis_ ๋ฒ„์ „:3.2.5

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค์ฃผ์„ธ์š”. ๋งŽ์ด

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@luoxun ๋ฐฉ๊ธˆ 0 ๋ฅผ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false ๋กœ ํ‰๊ฐ€๋˜์–ด ๋นˆ ๋ฌธ์ž์—ด์„ predis ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
REDIS_DATABASE = 0 ๋Š” "database":"" ๋กœ ๋ฐ”๋€Œ๊ณ  ERR invalid DB index
REDIS_DATABASE = "0" ๊ฒฐ๊ณผ "database":"0" ๋ฐ ์ž‘๋™

๋ชจ๋“  7 ๋Œ“๊ธ€

๋‚˜๋Š” Laravel์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ Predis๋ฅผ ๊ตฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ›„๋“œ ์•„๋ž˜์—์„œ ๋ฌด์—‡์„ ํ•˜๋Š”์ง€ ๋ชจ๋ฅด์ง€๋งŒ Predis\Client ์˜ ์—ฐ๊ฒฐ ๋งค๊ฐœ๋ณ€์ˆ˜์—์„œ database=0 (๋˜๋Š” ๋ช…๋ช…๋œ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ "database" => 0 )๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. Predis\Client ๋Š” ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. Predis๋งŒ ์‚ฌ์šฉํ•ด ๋ณด๊ณ  Redis์—์„œ ๋™์ผํ•œ ์˜ค๋ฅ˜ ์‘๋‹ต์„ ๋ฐ›๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ๋™์ผํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ์ƒ๋Œ€๋กœ ์ž‘๋™ํ•œ๋‹ค๋ฉด ์ด๊ฒƒ์€ Predis์™€ ๊ด€๋ จ๋œ ๋ฌธ์ œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

@luoxun ๋ฐฉ๊ธˆ 0 ๋ฅผ ๋”ฐ์˜ดํ‘œ๋กœ ๋ฌถ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด false ๋กœ ํ‰๊ฐ€๋˜์–ด ๋นˆ ๋ฌธ์ž์—ด์„ predis ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.
REDIS_DATABASE = 0 ๋Š” "database":"" ๋กœ ๋ฐ”๋€Œ๊ณ  ERR invalid DB index
REDIS_DATABASE = "0" ๊ฒฐ๊ณผ "database":"0" ๋ฐ ์ž‘๋™

๋‚˜๋Š” ๋‚ด๊ฐ€ ์˜ค๋ž˜๋œ ์Šค๋ ˆ๋“œ๋ฅผ ๋ถ€๋”ชํžˆ๊ณ  ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ REDIS_CACHE_DB ๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋ชจ๋“  ๊ฒƒ์ด ์ •๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์นจ๋‚ด ๊ทธ๊ฒƒ์„ ์•Œ์•„ ๋ƒˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋„์ปค ๋งํฌ๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๊ณ  redis ์„œ๋ฒ„์˜ ์ด๋ฆ„์„ redis ํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ถฉ๋Œ๋กœ ์ธํ•œ ๋ฌธ์ œ์ด๋ฏ€๋กœ redis ์„œ๋ฒ„๋ฅผ redis-server .

ํ•˜์ง€๋งŒ url ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ tcp://redis-server:6379 ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋“œ๋””์–ด ๋ฐ–์œผ๋กœ ์ฃผ์„ url ๋ฐ ์‚ฌ์šฉ host ํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

    'redis' => [

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

        'options' => [
            'cluster' => env('REDIS_CLUSTER', 'predis'),
            'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
        ],

        'default' => [
            #'url' => 'tcp://redis-server:6379/',
            'host' => env('REDIS_HOST', 'redis-server'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_DB', 0),
        ],
    ],

๋งˆ์นจ๋‚ด ๊ทธ๊ฒƒ์„ ์•Œ์•„ ๋ƒˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋„์ปค ๋งํฌ๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๊ณ  redis ์„œ๋ฒ„์˜ ์ด๋ฆ„์„ redis ํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ถฉ๋Œ๋กœ ์ธํ•œ ๋ฌธ์ œ์ด๋ฏ€๋กœ redis ์„œ๋ฒ„๋ฅผ redis-server .

ํ•˜์ง€๋งŒ url ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ tcp://redis-server:6379 ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.

๋“œ๋””์–ด ๋ฐ–์œผ๋กœ ์ฃผ์„ url ๋ฐ ์‚ฌ์šฉ host ํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

    'redis' => [

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

        'options' => [
            'cluster' => env('REDIS_CLUSTER', 'predis'),
            'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
        ],

        'default' => [
            #'url' => 'tcp://redis-server:6379/',
            'host' => env('REDIS_HOST', 'redis-server'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_DB', 0),
        ],
    ],

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!! ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

.env ํŒŒ์ผ์— ๋‹ค์Œ์„ ์ถ”๊ฐ€ํ•˜์‹ญ์‹œ์˜ค.
REDIS_CACHE_DB=0

๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค

๋งˆ์นจ๋‚ด ๊ทธ๊ฒƒ์„ ์•Œ์•„ ๋ƒˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
๋„์ปค ๋งํฌ๋ฅผ ์‚ฌ์šฉ ์ค‘์ด๊ณ  redis ์„œ๋ฒ„์˜ ์ด๋ฆ„์„ redis ํ•ฉ๋‹ˆ๋‹ค. ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์ถฉ๋Œ๋กœ ์ธํ•œ ๋ฌธ์ œ์ด๋ฏ€๋กœ redis ์„œ๋ฒ„๋ฅผ redis-server .
ํ•˜์ง€๋งŒ url ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ tcp://redis-server:6379 ์‹œ๋„ํ–ˆ์ง€๋งŒ ๋™์ผํ•œ ์˜ค๋ฅ˜๊ฐ€ ๊ณ„์† ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค.
๋“œ๋””์–ด ๋ฐ–์œผ๋กœ ์ฃผ์„ url ๋ฐ ์‚ฌ์šฉ host ํ•˜๊ณ  ๊ทธ๊ฒƒ์„ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

    'redis' => [

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

        'options' => [
            'cluster' => env('REDIS_CLUSTER', 'predis'),
            'prefix' => env('REDIS_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_database_'),
        ],

        'default' => [
            #'url' => 'tcp://redis-server:6379/',
            'host' => env('REDIS_HOST', 'redis-server'),
            'password' => env('REDIS_PASSWORD', null),
            'port' => env('REDIS_PORT', 6379),
            'database' => env('REDIS_DB', 0),
        ],
    ],

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!!! ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!

๋‹น์‹ ์€ ๋‚ด ํ•˜๋ฃจ๋ฅผ ์ €์žฅ

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰