πŸ”ΠšΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ json Π² redis: основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ совСты

Для хранСния JSON Π² Redis ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠ»ΡŽΡ‡-Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅, Π³Π΄Π΅ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°, Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π±ΡƒΠ΄Π΅Ρ‚ сам JSON.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:

import json
import redis

# Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Redis
r = redis.Redis()

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ сохранСния JSON ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
json_data = {'name': 'John', 'age': 30}
r.set('user:1', json.dumps(json_data))

# ΠŸΡ€ΠΈΠΌΠ΅Ρ€ получСния JSON ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°
stored_json = r.get('user:1')
if stored_json:
    user_data = json.loads(stored_json)
    print(user_data)

Π”Π΅Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΡ‚Π²Π΅Ρ‚

ΠŸΡ€ΠΈΠ²Π΅Ρ‚! БСгодня ΠΌΡ‹ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡ€ΠΈΠΌ ΠΎ Ρ‚ΠΎΠΌ, ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ JSON Π² Redis. Redis - это Π²Ρ‹ΡΠΎΠΊΠΎΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ систСма управлСния Π±Π°Π·Π°ΠΌΠΈ Π΄Π°Π½Π½Ρ‹Ρ…, которая ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ структуры Π΄Π°Π½Π½Ρ‹Ρ… Π² памяти для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ чтСния ΠΈ записи быстрСС, Ρ‡Π΅ΠΌ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½Ρ‹Π΅ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π° дискС.

Redis ΠΈ JSON

Redis являСтся Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ Ρ‚ΠΈΠΏΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…, Π²ΠΊΠ»ΡŽΡ‡Π°Ρ строки, списки, Ρ…ΡΡˆΠΈ ΠΈ мноТСства. Π₯отя Redis Π½Π΅ ΠΈΠΌΠ΅Π΅Ρ‚ встроСнной ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ для JSON, Π²Ρ‹ всС Ρ€Π°Π²Π½ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ ΠΈ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ JSON с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΡƒΠ»ΠΎΠ²ΠΎΠΊ.

БСриализация JSON

ΠŸΠ΅Ρ€Π΅Π΄ сохранСниСм JSON Π² Redis, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ Π΅Π³ΠΎ Π² строку. Π­Ρ‚ΠΎΡ‚ процСсс называСтся сСриализациСй. Π’ языкС программирования Python, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΌΠΎΠ΄ΡƒΠ»ΡŒ json для сСриализации ΠΈ дСсСриализации JSON Π΄Π°Π½Π½Ρ‹Ρ….


import json

data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}

json_string = json.dumps(data)

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ использовали Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ json.dumps() для прСобразования словаря data Π² JSON строку json_string.

Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ JSON Π² Redis

Π’Π΅ΠΏΠ΅Ρ€ΡŒ, ΠΊΠΎΠ³Π΄Π° Ρƒ нас Π΅ΡΡ‚ΡŒ сСриализованная JSON строка, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΅Π΅ Π² Redis с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ SET.


SET key_name json_string

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ SET для сохранСния JSON строки json_string Π² Redis ΠΏΠΎΠ΄ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ key_name.

Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ JSON ΠΈΠ· Redis

Для извлСчСния сохранСнного JSON ΠΈΠ· Redis, ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ GET.


GET key_name

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ GET для получСния JSON строки, сохранСнной ΠΏΠΎΠ΄ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ key_name.

ДСсСриализация JSON

ПослС извлСчСния JSON строки ΠΈΠ· Redis, ΠΌΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π΅Π΅ Π΄Π΅ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² исходный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ языкС программирования Python ΠΌΡ‹ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ json.loads() для этой Ρ†Π΅Π»ΠΈ.


json_string = redis.get('key_name')
data = json.loads(json_string)

Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ Π²Ρ‹ΡˆΠ΅, ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ json.loads() для дСсСриализации JSON строки json_string ΠΈ прСобразования Π΅Π΅ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ data.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΊΠΎΠ΄Π°: Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΈ Ρ‡Ρ‚Π΅Π½ΠΈΠ΅ JSON Π² Redis


import json
import redis

# БозданиС соСдинСния с Redis
r = redis.Redis(host='localhost', port=6379, db=0)

# БСриализация JSON
data = {
    "name": "John",
    "age": 30,
    "city": "New York"
}
json_string = json.dumps(data)

# Π‘ΠΎΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ JSON Π² Redis
r.set('person', json_string)

# Π˜Π·Π²Π»Π΅Ρ‡Π΅Π½ΠΈΠ΅ JSON ΠΈΠ· Redis
json_string = r.get('person')

# ДСсСриализация JSON
data = json.loads(json_string)

# Π’Ρ‹Π²ΠΎΠ΄ Π΄Π°Π½Π½Ρ‹Ρ…
print(data)

Π’ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ redis для создания соСдинСния с Redis. ΠœΡ‹ сСриализуСм ΡΠ»ΠΎΠ²Π°Ρ€ΡŒ JSON, сохраняСм Π΅Π³ΠΎ Π² Redis ΠΏΠΎΠ΄ ΠΊΠ»ΡŽΡ‡ΠΎΠΌ "person", Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΠ·Π²Π»Π΅ΠΊΠ°Π΅ΠΌ ΠΈ дСсСриализуСм Π΄Π°Π½Π½Ρ‹Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ вывСсти ΠΈΡ… Π½Π° экран.

Π’Ρ‹Π²ΠΎΠ΄

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ рассмотрСли, ΠΊΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ JSON Π² Redis. ΠœΡ‹ ΡƒΠ·Π½Π°Π»ΠΈ, Ρ‡Ρ‚ΠΎ для сохранСния JSON Π² Redis Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΅Π³ΠΎ ΡΠ΅Ρ€ΠΈΠ°Π»ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π² строку, Π° Π·Π°Ρ‚Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ SET для сохранСния Π΄Π°Π½Π½Ρ‹Ρ…. ΠœΡ‹ Ρ‚Π°ΠΊΠΆΠ΅ рассмотрСли процСсс извлСчСния ΠΈ дСсСриализации JSON ΠΈΠ· Redis. НадСюсь, информация Π±Ρ‹Π»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ для тСбя!

Π’ΠΈΠ΄Π΅ΠΎ ΠΏΠΎ Ρ‚Π΅ΠΌΠ΅

Redis and JSON Explained (Revisited)

Π—Π°Ρ‡Π΅ΠΌ Π½ΡƒΠΆΠ½Π° Π±Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Redis ΠΈ Π³Π΄Π΅ ΠΎΠ½Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ

FastAPI - ΠšΡΡˆΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ с Redis #8

ΠŸΠΎΡ…ΠΎΠΆΠΈΠ΅ ΡΡ‚Π°Ρ‚ΡŒΠΈ:

πŸ”ΠšΠ°ΠΊ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ json Π² redis: основныС ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈ совСты