Laravel Memcache

C++ JAVA
User avatar
Revelation
Web-tourist
Web-tourist
Posts: 861
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 62

Re: Laravel Memcache

Post by Revelation » Sun Jan 26, 2020 6:16 pm

dakata__92 wrote:
Sun Jan 26, 2020 5:15 pm

Code: Select all

self::$memcache
Това е просто глобална променлива / масив, която ползвам за да пренеса инфото от метода в анонимната функция на "remember".
Използвай use на анонимната функция.

Code: Select all

return cache()->remember($options['key'], $options['ttl'], function () use ($sql, $options) {
    return self::getDb()::query($sql, $options['ip']);
});

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3261
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 126

Re: Laravel Memcache

Post by dakata__92 » Sun Jan 26, 2020 8:03 pm

Revelation wrote:
Sun Jan 26, 2020 6:16 pm
dakata__92 wrote:
Sun Jan 26, 2020 5:15 pm

Code: Select all

self::$memcache
Това е просто глобална променлива / масив, която ползвам за да пренеса инфото от метода в анонимната функция на "remember".
Използвай use на анонимната функция.

Code: Select all

return cache()->remember($options['key'], $options['ttl'], function () use ($sql, $options) {
    return self::getDb()::query($sql, $options['ip']);
});
То като цяло кода ще търпи промяна, само да го подкарам коретно.

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3261
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 126

Re: Laravel Memcache

Post by dakata__92 » Mon Jan 27, 2020 9:00 am

Малко информация от снощните въпроси:

dd(cache()->driver());

Code: Select all

Repository {#218 ▼
  #store: FileStore {#217 ▼
    #files: Filesystem {#161}
    #directory: "/var/www/admin/storage/framework/cache/data"
  }
  #events: Dispatcher {#35 ▼
    #container: Application {#2 ▶}
    #listeners: array:6 [▶]
    #wildcards: []
    #wildcardsCache: array:25 [▶]
    #queueResolver: Closure() {#36 ▶}
  }
  #default: 3600
}
phpinfo();

Code: Select all

PHP Version 7.3.1
Memcache Version 	3.0.9-dev 
.env

Code: Select all

CACHE_DRIVER=file
config/cache.php

Code: Select all

<?php

use Illuminate\Support\Str;

return [

    /*
    |--------------------------------------------------------------------------
    | Default Cache Store
    |--------------------------------------------------------------------------
    |
    | This option controls the default cache connection that gets used while
    | using this caching library. This connection is used when another is
    | not explicitly specified when executing a given caching function.
    |
    | Supported: "apc", "array", "database", "file",
    |            "memcached", "redis", "dynamodb"
    |
    */

    'default' => env('CACHE_DRIVER', 'file'),

    /*
    |--------------------------------------------------------------------------
    | Cache Stores
    |--------------------------------------------------------------------------
    |
    | Here you may define all of the cache "stores" for your application as
    | well as their drivers. You may even define multiple stores for the
    | same cache driver to group types of items stored in your caches.
    |
    */

    'stores' => [

        'apc' => [
            'driver' => 'apc',
        ],

        'array' => [
            'driver' => 'array',
        ],

        'database' => [
            'driver' => 'database',
            'table' => 'cache',
            'connection' => null,
        ],

        'file' => [
            'driver' => 'file',
            'path' => storage_path('framework/cache/data'),
        ],

        'memcached' => [
            'driver' => 'memcached',
            'persistent_id' => env('MEMCACHED_PERSISTENT_ID'),
            'sasl' => [
                env('MEMCACHED_USERNAME'),
                env('MEMCACHED_PASSWORD'),
            ],
            'options' => [
                // Memcached::OPT_CONNECT_TIMEOUT => 2000,
            ],
            'servers' => [
                [
                    'host' => env('MEMCACHED_HOST', '127.0.0.1'),
                    'port' => env('MEMCACHED_PORT', 11211),
                    'weight' => 100,
                ],
            ],
        ],

        'redis' => [
            'driver' => 'redis',
            'connection' => 'cache',
        ],

        'dynamodb' => [
            'driver' => 'dynamodb',
            'key' => env('AWS_ACCESS_KEY_ID'),
            'secret' => env('AWS_SECRET_ACCESS_KEY'),
            'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
            'table' => env('DYNAMODB_CACHE_TABLE', 'cache'),
        ],

    ],

    /*
    |--------------------------------------------------------------------------
    | Cache Key Prefix
    |--------------------------------------------------------------------------
    |
    | When utilizing a RAM based store such as APC or Memcached, there might
    | be other applications utilizing the same cache. So, we'll specify a
    | value to get prefixed to all our keys so we can avoid collisions.
    |
    */

    'prefix' => env('CACHE_PREFIX', Str::slug(env('APP_NAME', 'laravel'), '_').'_cache'),

];


Fakeheal
Гуру
Гуру
Posts: 2703
Joined: Sat Apr 17, 2010 6:37 am
Answers: 351
Location: /r/eyebleach
Contact:

Re: Laravel Memcache

Post by Fakeheal » Mon Jan 27, 2020 9:48 am

Смени в .env:

Code: Select all

CACHE_DRIVER=memcached
и после пусни:

Code: Select all

php artisan config:clear
или там, както е, за да презареди config-a. После виж дали ти се е сменил drive-a на cache-a oт file на memcached.

Code: Select all

dd(cache()->drive())

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3261
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 126

Re: Laravel Memcache

Post by dakata__92 » Mon Jan 27, 2020 2:11 pm

Fakeheal wrote:
Mon Jan 27, 2020 9:48 am
Смени в .env:

Code: Select all

CACHE_DRIVER=memcached
и после пусни:

Code: Select all

php artisan config:clear
или там, както е, за да презареди config-a. После виж дали ти се е сменил drive-a на cache-a oт file на memcached.

Code: Select all

dd(cache()->drive())
Сменят се нещата:

Code: Select all

#store: MemcachedStore {#219 ▼
    #memcached: Memcached {#218 ▶}
    #prefix: "name_admin_cache:"
    #onVersionThree: true
  }
  #events: Dispatcher {#35 ▶}
  #default: 3600
}

User avatar
Revelation
Web-tourist
Web-tourist
Posts: 861
Joined: Sun Mar 24, 2013 1:23 pm
Answers: 62

Re: Laravel Memcache

Post by Revelation » Mon Jan 27, 2020 6:15 pm

Тръгнаха ли нещата сега?

Също, ако memcached сървъра използва друго IP и порт, ги добави в .env файла.

Code: Select all

MEMCACHED_HOST=...
MEMCACHED_PORT=...
Също имай в предвид следното от предния ми пост:
Revelation wrote: Също, ако използваш PHP 7.3 ти трябва версия на библиотеката поне 3.1.0 (3.1.3 за PHP 7.4)
Ако това е memcache lib, а не memcached, ти трябва memcache v4+.

User avatar
dakata__92
Web-tourist
Web-tourist
Posts: 3261
Joined: Tue Aug 02, 2011 7:24 pm
Answers: 126

Re: Laravel Memcache

Post by dakata__92 » Mon Jan 27, 2020 6:27 pm

Revelation wrote:
Mon Jan 27, 2020 6:15 pm
Тръгнаха ли нещата сега?

Също, ако memcached сървъра използва друго IP и порт, ги добави в .env файла.

Code: Select all

MEMCACHED_HOST=...
MEMCACHED_PORT=...
Също имай в предвид следното от предния ми пост:
Revelation wrote: Също, ако използваш PHP 7.3 ти трябва версия на библиотеката поне 3.1.0 (3.1.3 за PHP 7.4)
Ако това е memcache lib, а не memcached, ти трябва memcache v4+.
Утре с колегата, ще ъпгрейднем версията и ще тествам пак.

Post Reply