Cập nhật giá trị cho một JSON trong Redis

Mình là dân ngoại đạo , vừa rồi mình viết một Script nho nhỏ bằng Python có dùng thử Redis .
Mình Google thì để set một JSON vào DB thì dùng đoạn Script sau !

import redis
from redis.commands.json.path import Path

client = redis.Redis(host='localhost', port=6379, db=0)

jane = {
     'name': "Jane",
     'Age': 33,
     'Location': "Chawton"
   }

client.json().set('person:1', '$', jane)

result = client.json().get('person:1')
print(result)

Có mà mình không biết làm thế nào để cập nhật một giá trị trong một JSON sau khi đã set vào DB !
Trong ví dụ trên mình muốn thay đổi

 'Age': 33

thành

 'Age': 22

Mình có search thử nhưng chỉ có với command line !

Hi vọng nhận đc sự trợ giúp ! Thanks

Ohm, tớ tưởng cậu chỉ có mỗi cách là lấy nội dung của record, unmarshall thành object, sửa nội dung, marshall thành xâu JSON và lưu lại vào redis :smile:

3 Likes

Tại mình hỏi xem có cách nào mà không phải lấy nguyên chuỗi JSON về rồi update lại không để mình lưu tiến trình công việc của một Theard khi nó đang xử lí ?
Tại mình thấy trên cmd thì nó vầy :

redis> JSON.SET doc $ '{"a":2}'
OK
redis> JSON.SET doc $.b '8'
OK
redis> JSON.GET doc $
"[{\"a\":2,\"b\":8}]"

Thấy cũng đơn giản mà thư viện Redis cho Python thì tìm k có !
Mình vừa chuyển sang dùng JWT kết hợp với Redis rồi !
Thansk bạn !

1 Like
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?