suvera/winter-memdb

Winter Memdb模块支持许多内存数据库,例如Apache Ignite、Redis、Memcached等。

dev-master 2021-07-31 05:31 UTC

This package is auto-updated.

Last update: 2024-09-29 05:56:48 UTC


README

Winter内存数据库(memdb)是一个模块,它将内存数据库引擎集成到winter-boot框架中。

以下数据库可能被集成,应用程序启动时自动启动,停止时停止。

  • Redis
  • Apache Ignite
  • Hazelcast
  • Memcached
  • RocksDB
  • H2

设置

  1. 这需要swoole PHP扩展
composer require suvera/winter-memdb

要在应用程序中启用Memdb模块,请将以下代码追加到application.yml

modules:
    -   module: dev\winterframework\memdb\MemdbModule
        enabled: true
        configFile: memdb-config.yml

configFile是文件路径(相对于配置目录或绝对路径)

memdb-config.yml

# Redis
redis:
# Redis Configuration here, see below section


# Apache Ignite
ignite:
# Apache Ignite Configuration here


# Memcached
memcached:
# Memcached Configuration here


# Hazelcast
hazelcast:
# Hazelcast Configuration here

1. Redis

Redis配置

redis:
    -   name: redisServerBean01
        serverBinary: /usr/local/bin/redis-server
        confFile: redis_1.conf  # relative or absolute path
        args: ""
  • 允许许多服务器配置。
  • 框架将自动根据给定名称创建客户端Bean。例如:"redisServerBean01"
#[Autowired('redisServerBean01')]
private PhpRedisTemplate $redis;

2. Apache Ignite

Apache Ignite配置

ignite:
    -   name: igniteServerBean01
        serverBinary: /etc/apache-ignite-2.10.0/bin/ignite.sh
        # Optional config
        confFile: ignite-config.xml  # relative or absolute path
        args: ""
  • 允许许多服务器配置。
  • 框架将根据给定名称自动创建客户端Bean。例如:"igniteServerBean01"
#[Autowired('igniteServerBean01')]
private IgniteCacheTemplate $ignite;

3. Memcached

  • 这需要memcachedmemcache PHP扩展

Memcached配置。

memcached:
    -   name: memcachedServerBean01
        serverBinary: /usr/bin/memcached
        host: 127.0.0.1
        port: 11211
        udpPort: 0
        unixSocket:
        pidfile: "/var/run/memcached_1.pid"
        args: "-u memcached "
  • 允许许多服务器配置。
  • 框架将根据给定名称自动创建客户端Bean。例如:"memcachedServerBean01"
// `memcached` php extension installed
#[Autowired('memcachedServerBean01')]
private MemcachedTemplate $memcached;

// OR

//  if `memcache` php extension installed
#[Autowired('memcacheBean02')]
private MemcacheTemplate $memcache;

4. Hazelcast

  • Hazelcast需要作为客户端的memcached PHP扩展
pecl install memcached

Hazelcast配置。

hazelcast:
    -   name: hazelcastBean01
        serverBinary: etc/hazelcast-4.2.1/bin/start.sh
        confFile: /etc/hazelcast/config/hazelcast.xml
        bootUpTimeMs: 300
        args: ""
  • 允许许多服务器配置。
  • 框架将根据给定名称自动创建客户端Bean。例如:"hazelcastBean01"
#[Autowired('hazelcastBean01)]
private MemcachedTemplate $hazelcast;

注意:Hazelcast配置需要启用memcache。请在此处查看https://docs.hazelcast.com/imdg/4.2/clients/memcache.html

<hazelcast>
    ...
    <network>
        <memcache-protocol enabled="true"/>
    </network>
    ...
</hazelcast>