最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

在Redis中存儲(chǔ)和操作JSON數(shù)據(jù)的方法詳解

 更新時(shí)間:2025年07月04日 08:37:35   作者:學(xué)亮編程手記  
RedisJSON 是 Redis 的一個(gè)模塊,為 Redis 提供了 JSON 數(shù)據(jù)類型的支持,允許直接存儲(chǔ)、更新和查詢 JSON 文檔,本文給大家詳細(xì)介紹了RedisJSON 安裝部署及使用示例,需要的朋友可以參考下

RedisJSON 安裝部署及使用示例

RedisJSON 是 Redis 的一個(gè)模塊,為 Redis 提供了 JSON 數(shù)據(jù)類型的支持,允許直接存儲(chǔ)、更新和查詢 JSON 文檔。

一、安裝部署

1. 前提條件

  • 已安裝 Redis 5.0 或更高版本
  • Linux 系統(tǒng)(推薦 Ubuntu/CentOS)

2. 安裝方法

方法一:從預(yù)編譯二進(jìn)制文件安裝

下載預(yù)編譯的 RedisJSON 模塊:

wget https://redismodules.s3.amazonaws.com/redisjson/redisjson-latest.so

啟動(dòng) Redis 并加載模塊:

redis-server --loadmodule /path/to/redisjson-latest.so

方法二:從源碼編譯安裝

安裝依賴:

# Ubuntu/Debian
sudo apt-get install build-essential cmake

# CentOS/RHEL
sudo yum groupinstall "Development Tools"
sudo yum install cmake

克隆并編譯 RedisJSON:

git clone https://github.com/RedisJSON/RedisJSON.git
cd RedisJSON
make

啟動(dòng) Redis 并加載模塊:

redis-server --loadmodule /path/to/RedisJSON/bin/linux-x64-release/rejson.so

3. 驗(yàn)證安裝

連接到 Redis 并執(zhí)行:

redis-cli
127.0.0.1:6379> MODULE LIST

如果安裝成功,你應(yīng)該能看到類似 name=ReJSON,ver=20000 的輸出。

二、基本使用示例

1. 設(shè)置和獲取 JSON 文檔

# 設(shè)置一個(gè)JSON文檔
127.0.0.1:6379> JSON.SET user1 $ '{"name":"Alice","age":30,"address":{"city":"New York","zip":"10001"},"tags":["developer","redis"]}'
OK

# 獲取整個(gè)JSON文檔
127.0.0.1:6379> JSON.GET user1
"{\"name\":\"Alice\",\"age\":30,\"address\":{\"city\":\"New York\",\"zip\":\"10001\"},\"tags\":[\"developer\",\"redis\"]}"

# 獲取特定字段
127.0.0.1:6379> JSON.GET user1 .name
"\"Alice\""
127.0.0.1:6379> JSON.GET user1 .age
"30"

2. 更新 JSON 文檔

# 更新單個(gè)字段
127.0.0.1:6379> JSON.SET user1 .age 31
OK

# 添加新字段
127.0.0.1:6379> JSON.SET user1 .email '"alice@example.com"'
OK

# 更新嵌套字段
127.0.0.1:6379> JSON.SET user1 .address.city '"Boston"'
OK

3. 數(shù)組操作

# 向數(shù)組添加元素
127.0.0.1:6379> JSON.ARRAPPEND user1 .tags '"database"'
(integer) 3

# 獲取數(shù)組長(zhǎng)度
127.0.0.1:6379> JSON.ARRLEN user1 .tags
(integer) 3

# 獲取數(shù)組元素
127.0.0.1:6379> JSON.GET user1 .tags[1]
"\"redis\""

4. 數(shù)值操作

# 數(shù)值遞增
127.0.0.1:6379> JSON.NUMINCRBY user1 .age 1
"32"

# 數(shù)值相乘
127.0.0.1:6379> JSON.NUMMULTBY user1 .age 2
"64"

5. 刪除操作

# 刪除字段
127.0.0.1:6379> JSON.DEL user1 .email
(integer) 1

# 刪除整個(gè)鍵
127.0.0.1:6379> DEL user1
(integer) 1

三、高級(jí)查詢

RedisJSON 2.0+ 支持 JSONPath 查詢語法:

# 創(chuàng)建多個(gè)用戶
127.0.0.1:6379> JSON.SET user:1 $ '{"name":"Alice","age":30,"city":"New York"}'
OK
127.0.0.1:6379> JSON.SET user:2 $ '{"name":"Bob","age":25,"city":"Boston"}'
OK
127.0.0.1:6379> JSON.SET user:3 $ '{"name":"Charlie","age":35,"city":"New York"}'
OK

# 查詢所有在紐約的用戶
127.0.0.1:6379> JSON.MGET user:1 user:2 user:3 $..[?(@.city=="New York")]
1) "{\"name\":\"Alice\",\"age\":30,\"city\":\"New York\"}"
2) "{\"name\":\"Charlie\",\"age\":35,\"city\":\"New York\"}"

四、Python 使用示例

安裝 Redis 和 RedisJSON 的 Python 客戶端:

pip install redis redis-json

示例代碼:

import redis
from rejson import Client, Path

# 連接Redis
rj = Client(host='localhost', port=6379, decode_responses=True)

# 設(shè)置JSON文檔
rj.jsonset('user:100', Path.rootPath(), {
    'name': 'Alice',
    'age': 30,
    'address': {
        'city': 'New York',
        'zip': '10001'
    },
    'tags': ['developer', 'redis']
})

# 獲取字段
name = rj.jsonget('user:100', Path('.name'))
print(f"Name: {name}")

# 更新字段
rj.jsonset('user:100', Path('.age'), 31)

# 數(shù)組操作
rj.jsonarrappend('user:100', Path('.tags'), 'database')

# 獲取整個(gè)文檔
user_data = rj.jsonget('user:100', Path.rootPath())
print("User data:", user_data)

五、注意事項(xiàng)

  1. RedisJSON 需要 Redis 5.0 或更高版本
  2. 生產(chǎn)環(huán)境建議使用 Redis 6.0+ 以獲得更好的性能
  3. 大文檔可能會(huì)影響性能,建議合理設(shè)計(jì)數(shù)據(jù)結(jié)構(gòu)
  4. RedisJSON 2.0+ 支持更強(qiáng)大的 JSONPath 查詢語法

通過 RedisJSON,你可以直接在 Redis 中存儲(chǔ)和操作 JSON 數(shù)據(jù),無需在應(yīng)用層進(jìn)行序列化和反序列化,大大簡(jiǎn)化了開發(fā)流程并提高了性能。

以上就是在Redis中存儲(chǔ)和操作JSON數(shù)據(jù)的方法詳解的詳細(xì)內(nèi)容,更多關(guān)于Redis存儲(chǔ)和操作JSON數(shù)據(jù)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • RabbitMQ+redis+Redisson分布式鎖+seata實(shí)現(xiàn)訂單服務(wù)的流程分析

    RabbitMQ+redis+Redisson分布式鎖+seata實(shí)現(xiàn)訂單服務(wù)的流程分析

    訂單服務(wù)涉及許多方面,分布式事務(wù),分布式鎖,例如訂單超時(shí)未支付要取消訂單,訂單如何防止重復(fù)提交,如何防止超賣、這里都會(huì)使用到,這篇文章主要介紹了RabbitMQ+redis+Redisson分布式鎖+seata實(shí)現(xiàn)訂單服務(wù)的流程分析,需要的朋友可以參考下
    2024-07-07
  • Redis實(shí)現(xiàn)高效插入大量數(shù)據(jù)的三種方法

    Redis實(shí)現(xiàn)高效插入大量數(shù)據(jù)的三種方法

    在實(shí)際開發(fā)中,我們經(jīng)常需要向Redis批量寫入大量數(shù)據(jù),本文將詳細(xì)介紹三種基于管道的批量插入方案,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2026-04-04
  • Linux、Windows下Redis的安裝即Redis的基本使用詳解

    Linux、Windows下Redis的安裝即Redis的基本使用詳解

    Redis是一個(gè)基于內(nèi)存的key-value結(jié)構(gòu)數(shù)據(jù)庫,Redis 是互聯(lián)網(wǎng)技術(shù)領(lǐng)域使用最為廣泛的存儲(chǔ)中間件,這篇文章主要介紹了Linux、Windows下Redis的安裝即Redis的基本使用詳解,需要的朋友可以參考下
    2022-09-09
  • Redis Sentinel服務(wù)配置流程(詳解)

    Redis Sentinel服務(wù)配置流程(詳解)

    下面小編就為大家?guī)硪黄猂edis Sentinel服務(wù)配置流程(詳解)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-03-03
  • Redis所實(shí)現(xiàn)的Reactor模型設(shè)計(jì)方案

    Redis所實(shí)現(xiàn)的Reactor模型設(shè)計(jì)方案

    這篇文章主要介紹了Redis所實(shí)現(xiàn)的Reactor模型,本文將帶領(lǐng)讀者從源碼的角度來查看redis關(guān)于reactor模型的設(shè)計(jì),需要的朋友可以參考下
    2024-06-06
  • Redis報(bào)錯(cuò)“NOAUTH Authentication required”兩種解決方案

    Redis報(bào)錯(cuò)“NOAUTH Authentication required”兩種解決方案

    Redis提供了一個(gè)命令行工具redis-cli,它允許你直接連接到Redis服務(wù)器,如果你知道Redis服務(wù)器的密碼,你可以在連接時(shí)直接提供它,本文給大家介紹連接了Redis報(bào)錯(cuò)“NOAUTH Authentication required”兩種解決方案
    2024-05-05
  • php結(jié)合redis實(shí)現(xiàn)高并發(fā)下的搶購、秒殺功能的實(shí)例

    php結(jié)合redis實(shí)現(xiàn)高并發(fā)下的搶購、秒殺功能的實(shí)例

    下面小編就為大家?guī)硪黄猵hp結(jié)合redis實(shí)現(xiàn)高并發(fā)下的搶購、秒殺功能的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-12-12
  • 淺談內(nèi)存耗盡后Redis會(huì)發(fā)生什么

    淺談內(nèi)存耗盡后Redis會(huì)發(fā)生什么

    這篇文章主要介紹了淺談內(nèi)存耗盡后Redis會(huì)發(fā)生什么,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • 深入解析Redis中常見的應(yīng)用場(chǎng)景

    深入解析Redis中常見的應(yīng)用場(chǎng)景

    這篇文章主要給大家介紹了關(guān)于Redis中常見的應(yīng)用場(chǎng)景的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-09-09
  • redis4.0入門小結(jié)

    redis4.0入門小結(jié)

    這篇文章主要介紹了redis4.0入門小結(jié),文中通過示例和概念介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-11-11

最新評(píng)論

涡阳县| 遵义县| 富裕县| 莱州市| SHOW| 瑞丽市| 云阳县| 密山市| 临西县| 大竹县| 通州市| 宜春市| 汶上县| 普兰店市| 汉寿县| 衡水市| 宝鸡市| 中卫市| 绥宁县| 商水县| 潜江市| 藁城市| 福贡县| 兴国县| 连云港市| 平潭县| 旬阳县| 漯河市| 娱乐| 收藏| 栖霞市| 墨江| 兰考县| 祁连县| 时尚| 绍兴市| 彰武县| 衡南县| 大余县| 隆昌县| 临清市|