Vytvoření uživatele v PostgreSQL

Po instalaci PostgreSQL se do databáze přihlásíte pod uživatelem postgres.

sudo su - postgres
psql -U postgres

Vytvoříte nového uživatele.

create user username password 'password' createdb;

To že byl uživatel vytvořen a jaké má role si v psql zobrazíte příkazem \du.

                                   List of roles
 Role name |                         Attributes                         | Member of
-----------+------------------------------------------------------------+-----------
 username  | Create DB                                                  | {}
 postgres  | Superuser, Create role, Create DB, Replication, Bypass RLS | {}

Pro přihlášení do databáze je ještě potřeba, aby uživatel s daným jménem existoval i v systému.

Peer authentication funguje dle dokumentace následovně. Z operačního systému se získá uživatelské jméno a to se považuje za povoleného databázové uživatele. V operačním systému musí existovat uživatel stejného jména jako v databázi a musíme být pod daným uživatelem přihlášeni.
www.vitfo.cz/2018/09/15/prvni-prihlaseni-do-postgresql-v-ubuntu/

K tomu slouží příkaz adduser.

sudo adduser username

Zakázání přihlášení pod daným uživatelem.

sudo passwd -l username

Přihlášení pod novým uživatelem do databáze postgres.

psql -U username-d postgres

Redisson master slave config

Konfigurace master slave Redis klienta (Redisson) s konfigurací pro docker-compose.

redisson.json

{
  "masterSlaveServersConfig": {
    "idleConnectionTimeout": 10000,
    "connectTimeout": 10000,
    "timeout": 3000,
    "retryAttempts": 3,
    "retryInterval": 1500,
    "failedSlaveReconnectionInterval": 3000,
    "failedSlaveCheckInterval": 60000,
    "password": null,
    "subscriptionsPerConnection": 5,
    "clientName": null,
    "subscriptionConnectionMinimumIdleSize": 1,
    "subscriptionConnectionPoolSize": 50,
    "slaveConnectionMinimumIdleSize": 24,
    "slaveConnectionPoolSize": 64,
    "masterConnectionMinimumIdleSize": 24,
    "masterConnectionPoolSize": 64,
    "readMode": "SLAVE",
    "subscriptionMode": "SLAVE",
    "slaveAddresses": [
      "redis://127.0.0.1:32781",
      "redis://127.0.0.1:32782",
      "redis://127.0.0.1:32783"
    ],
    "masterAddress": "redis://127.0.0.1:32780",
    "database": 0
  },
  "threads": 16,
  "nettyThreads": 32,
  "transportMode": "NIO"
}

docker-compose.yml

version: '2'services:
  redis-master:
    image: 'bitnami/redis:latest'
    ports:
      - '6379'
    environment:
      - REDIS_REPLICATION_MODE=master
      - ALLOW_EMPTY_PASSWORD=yes
    volumes:
      - '/home/vitfo/Redis/volume'  redis-replica:
    image: 'bitnami/redis:latest'
    ports:
      - '6379'
    depends_on:
      - redis-master
    environment:
      - REDIS_REPLICATION_MODE=slave
      - REDIS_MASTER_HOST=redis-master
      - REDIS_MASTER_PORT_NUMBER=6379
      - ALLOW_EMPTY_PASSWORD=yes

docker-compose up –scale redis-master=1 –scale redis-replica=3 vytvoří:

CONTAINER ID        IMAGE                  COMMAND                  CREATED             STATUS              PORTS                     NAMES
dbb2a6f2bdae        bitnami/redis:latest   "/opt/bitnami/script…"   13 seconds ago      Up 11 seconds       0.0.0.0:32781->6379/tcp   redis_redis-replica_3
44adb500c854        bitnami/redis:latest   "/opt/bitnami/script…"   13 seconds ago      Up 10 seconds       0.0.0.0:32782->6379/tcp   redis_redis-replica_2
72e8bdc566b0        bitnami/redis:latest   "/opt/bitnami/script…"   13 seconds ago      Up 9 seconds        0.0.0.0:32783->6379/tcp   redis_redis-replica_1
c4b64430a2ca        bitnami/redis:latest   "/opt/bitnami/script…"   14 seconds ago      Up 12 seconds       0.0.0.0:32780->6379/tcp   redis_redis-master_1

Zdroje:

Užitečné příkazy psql

Připojení k databázi
psql -d databáze -U uživatel (připojí se do postgres databáze pod uživatelem)
psql -U uživatel -h url -p port (připojí se do postgres databáze, která je na url a portu pod uživatelem)

Pokud jste připojeni
\l (zobrazí seznam databází)
\c databáze (přepne se do databáze)
\c databáze uživatel (přepne se do databáze pod uživatelem)
\d (zobrazí seznam všech tabulek a sekvencí v dané databázi)
\dt (zobrazí seznam všech tabulek v dané databázi)
\ds (zobrazí seznam všech sekvencí v dané databázi)
\dn (zobrazí seznam schémat v dané databázi)
\df (zobrazí seznam funkcí v dané databázi)
\dv (zobrazí seznam views v dané databázi)
\du (zobrazí seznam uživatelů v dané databázi)
\d tabulka (zobrazí informace o dané tabulce)
\d sekvence (zobrazí informace o dané sekvenci)
\e (umožní vám zvolit editor pro psaní příkazu)

Nápověda
\? (zobrazí seznam psql příkazů)

Číst dálUžitečné příkazy psql

Získání klíčů Redis databáze

Pro získání klíčů v rámci Redisu při použítí redis-cli existuje příkaz KEYS pattern. Pokud chcete všechny klíče použijete KEYS *, pokud pouze klíče začínající na ‚my‘ použijete KEYS my*. Typ hodnoty klíče zjistíte příkazem TYPE nazev-klice.

Dokumentace nedoporučuje používat KEYS v produkční databázi nebo u velkých databází, neboť KEYS vrací všechny klíče a to může mít vliv na výkonnost. Místo KEYS se doporučuje použití SCAN. Scan vrací na každý dotaz jen omezené množství záznamů a požaduje cursor (ukazatel). V rámci odpovědi vrací nalezené klíče a další ukazatel. Dokud není vrácený ukazatel rovný 0, stále existují klíče, které ještě nebyly vráceny. Výchozí nastavení pro scan vrací 10 záznamů. To možné změnit volbou COUNT.

Číst dálZískání klíčů Redis databáze

Informix, Docker a SQuirrel

V tomto příspěvku ukáži, jak se pomocí SQuirrel připojit do Informixu běžícího v Dockeru. Informix je relační databázový systém firmy IBM. Tomu jak jej rozchodit jako docker image jsem se věnoval v předchozím příspěvku. SQuirrel je grafické rozhraní napsané v jazyce Java pro přístup k databázi (databázím). Více o instalaci se dozvíte v tomto příspěvku.

SQuirrel potřebuje pro komunikaci s databází JDBC ovladač. Ten lze stáhnou z maven repozitáře, nebo ze stránek IBM. Ovladač nahrajte do složky ../lib programu SQuirrel. Pokud nyní spustíte SQuirrel, měl by již být informix driver k dispozici.

Číst dálInformix, Docker a SQuirrel

Informix v Dockeru

V tomto příspěvku ukáži rozchození IBM relačního databázového systému Informix v Dockeru.

docker run -it --name ifx --privileged -p 9088:9088 -e LICENSE=accept ibmcom/informix-developer-database:latest

Stáhne image s informixem a vytvoří kontejner s názvem ifx.

-p 9088:9088 vystavení interního portu 9088 ven
-e LICENSE=accept pro používání informixu je třeba souhlasit s licenčními podmínkami
-i interaktivní
-t pseudo terminál

Výstup uvedeného příkazu bude zhruba následující:

Číst dálInformix v Dockeru

Datové typy Redisu

Redis podporuje 5 datových typů.

  • Strings (textové řetězce) – posloupnost bytů
  • Hashes (heše) – kolekce hodnot klíč-hodnota
  • Lists (seznamy) – seznamy řetězců seřazené podle pořadí vložení
  • Sets (množiny) – neseřazená kolekce řetězců, každý řetězec je jedinečný
  • Sorted Sets (seřazená množina) – seřazená, neopakující se kolekce řetězců

Strings

127.0.0.1:6379> set string-key-1 "string-value-1"
OK
127.0.0.1:6379> set string-key-2 "string-value-2"
OK
127.0.0.1:6379> get string-key-1
"string-value-1"

Číst dálDatové typy Redisu

Redis v Dockeru

V nedávném příspěvku jsem se věnoval PostgreSQL v Dockeru. V tomto příspěvku se zaměřím na Redis v Dockeru.

Redis v Dockeru si spustíte příkazem docker run -d -p 6379:6379 --name redis1 redis.

docker run -d -p 6379:6379 --name redis1 redis
Pokud image redis nemáte na svém počítači, provedes se stažení (pull). Zároveň se redis spustí na pozadí
Unable to find image 'redis:latest' locally
latest: Pulling from library/redis
bc51dd8edc1b: Pull complete
37d80eb324ee: Pull complete
392b7748dfaf: Pull complete
48df82c3534d: Pull complete
2ec2bb0b4b0e: Pull complete
1302bce0b2cb: Pull complete
Digest: sha256:7b84b346c01e5a8d204a5bb30d4521bcc3a8535bbf90c660b8595fad248eae82
Status: Downloaded newer image for redis:latest
b44ab2740c8349b7bcfbff65f197855f6fd734ece4df71d81830bcb2eb7482a4

Tento výpis uvidíte pouze v případě, že jste zatím redis na svém počítači nikdy nespouštěli. Pokud již image redisu máte, výpis bude výrazně kratší.

Číst dálRedis v Dockeru

Změna portu Redisu

Konfigurační soubor Redisu redis.conf lze na Linuxu najít ve složce /etc/redis. V tomto souboru je definován také port, na kterém Redis běží:

# Accept connections on the specified port, default is 6379 (IANA #815344).
# If port 0 is specified Redis will not listen on a TCP socket.
port 6379

Ve výchozím nastavení se používá port 6379. Pokud port změníte, je třeba restartovat redis server.

sudo service redis-server restart

Připojení můžete vyzkoušet pomocí redis-cli.

redis-cli ping
Could not connect to Redis at 127.0.0.1:6379: Connection refused

Pokud východí port 6379 změníte, musíte redis-cli říct, na který port se má připojit (přepínač -p). V tomto případě jsem port změnil na 6378.

redis-cli -p 6378 ping
PONG