Redis 存取 JSON 數(shù)據(jù)示例操作
Redis 存取 JSON 數(shù)據(jù)
本文來(lái)自網(wǎng)絡(luò),本人稍加修改
關(guān)于下面rejson安裝的修正!!!
rejson安裝我的按照下面的不行
我是下載rejson后,直接make,然后在src下發(fā)現(xiàn)有一個(gè)rejson.so,我直接用的這個(gè)
另外我啟動(dòng)的時(shí)候也不顯示rejson信息,但是啟動(dòng)redis后可以存取json格式
1. 簡(jiǎn)介
Redis 本身有比較豐富的數(shù)據(jù)類型,例如 String、Hash、Set、List
JSON 是我們常用的數(shù)據(jù)類型,當(dāng)我們需要在 Redis 中保存 json 數(shù)據(jù)時(shí)是怎么存放的呢?
一般是用 String 或者 Hash,但還是不太方便,無(wú)法靈活的操作 json 數(shù)據(jù)
在 Redis 4.0 中,有一個(gè)重大改進(jìn):modules 模塊系統(tǒng),可以讓我們開(kāi)發(fā)新的功能,集成到 redis 中
rejson 就是一個(gè)新的模塊,為 redis 提供了 json 存儲(chǔ)能力
2. 示例
2.1 基礎(chǔ)操作
127.0.0.1:6379> JSON.SET object . '{"foo": "bar", "ans": 42}'
OK
127.0.0.1:6379> JSON.GET object
"{\"foo\":\"bar",\"ans\":42}"
先看下第一條命令的含義:
- JSON.SET 是json設(shè)置命令
- object 是 key
- . 是json文檔的root,后面的一串是具體的 json 數(shù)據(jù)值
第二條命令是獲取 key 為 object 的json數(shù)據(jù)
2.2 json 內(nèi)部操作
- 獲取某字段的值
127.0.0.1:6379> JSON.GET object .ans
"42"
命令中的 .ans 是目標(biāo)路徑,表示 root 下面的 ans
- 設(shè)置某字段值
127.0.0.1:6379> json.set object .name '"bill"'
OK
127.0.0.1:6379> json.get object
"{\"foo\":\"bar\",\"ans\":42,\"hi\":\"hello\",\"name\":\"bill\"}"
這個(gè)命令是在 root 下新增了一個(gè)字段 name,值為 bill
也可以修改已有字段的值,用法相同
- 刪除字段
127.0.0.1:6379> json.del object .name
(integer) 1
127.0.0.1:6379> json.get object
"{\"foo\":\"bar\",\"ans\":42,\"hi\":\"hello\"}"
這個(gè)命令使用 del 把 root 下的 name 字段刪除了
- 數(shù)字操作
ans 字段是數(shù)字類型,值為 42,下面對(duì)其執(zhí)行 +3 操作
127.0.0.1:6379> json.numincrby object .ans 3
"45"
127.0.0.1:6379> json.get object
"{\"foo\":\"bar\",\"ans\":45,\"hi\":\"hello\"}"
還可以進(jìn)行乘法操作
127.0.0.1:6379> json.nummultby object .ans 2
"90"
127.0.0.1:6379> json.get object
"{\"foo\":\"bar\",\"ans\":90,\"hi\":\"hello\"}"
直接刪除整個(gè)json串
127.0.0.1:6379> json.get object
"{\"foo\":\"bar\",\"ans\":90}"
127.0.0.1:6379> json.del object
(integer) 0
127.0.0.1:6379> json.get object
(nil)
127.0.0.1:6379>
還有很多其他操作命令,具體可以查看項(xiàng)目文檔
3. 安裝
因?yàn)槭褂昧四K功能,所以需要 redis 4.0 以上版本
3.1 安裝流程
- 安裝 redis 4.0
- 安裝相關(guān)系統(tǒng)依賴
- 安裝 rejson 模塊
- redis 加載 rejson 模塊
3.2 詳細(xì)安裝過(guò)程
安裝 redis 4.0
wget https://github.com/antirez/redis/archive/4.0-rc2.tar.gz tar xzf 4.0-rc2.tar.gz cd redis-4.0-rc2/ make
安裝依賴
yum groupinstall "Development Tools"
(這是 centos 中的安裝方法,ubuntu 可以使用這個(gè)命令 apt-get install build-essential )
安裝cmake
# wget https://cmake.org/files/v3.8/cmake-3.8.0-rc3.tar.gz # tar -xzvf cmake-2.8.11.2.tar.gz # cd cmake-2.8.11.2 # ./bootstrap # make # make install
直接下載rejson 模塊
建議直接下載
建議直接下載
建議直接下載
直接下載
wget https://github.com/RedisJSON/RedisJSON/releases/download/v1.0.4/rejson.so
啟動(dòng) redis 時(shí)加載 rejson.so
redis-server --loadmodule /path/to/module/rejson.so
在啟動(dòng)信息中會(huì)看到 rejson 的相關(guān)信息
...
<ReJSON> JSON data type for Redis
...
安裝完成,可以登錄 redis 執(zhí)行 json 命令了
4. 小結(jié)
rejson 讓我們可以在 redis 中存儲(chǔ)和操作 json 數(shù)據(jù),非常方便
而且通過(guò)體驗(yàn) rejson 模塊,還可以感受到 redis 模塊系統(tǒng)的強(qiáng)大,以后將會(huì)出現(xiàn)各種基于redis的強(qiáng)大功能
rejson 項(xiàng)目地址:
https://redislabsmodules.github.io/rejson/
到此這篇關(guān)于Redis 存取 JSON 數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Redis 存取 JSON 數(shù)據(jù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
解決Redis報(bào)錯(cuò)MISCONF?Redis?is?configured?to?save?RDB?snap
這篇文章主要給大家介紹了關(guān)于如何解決Redis報(bào)錯(cuò)MISCONF?Redis?is?configured?to?save?RDB?snapshots的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11Redis過(guò)期時(shí)間的設(shè)計(jì)與實(shí)現(xiàn)代碼
在?Redis?中,鍵的過(guò)期時(shí)間設(shè)計(jì)與實(shí)現(xiàn)是一個(gè)重要的功能,這使得?Redis?可以自動(dòng)刪除在指定時(shí)間后不再需要的鍵,下面詳細(xì)介紹?Redis?過(guò)期時(shí)間的設(shè)計(jì)和實(shí)現(xiàn),包括設(shè)置過(guò)期時(shí)間、過(guò)期鍵的存儲(chǔ)結(jié)構(gòu)、過(guò)期鍵的刪除策略等,需要的朋友可以參考下2024-08-08Redis Sentinel實(shí)現(xiàn)高可用配置的詳細(xì)步驟
這篇文章主要介紹了Redis Sentinel實(shí)現(xiàn)高可用配置的詳細(xì)步驟,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2018-09-09SpringBoot3+Redis實(shí)現(xiàn)分布式鎖的配置方法
這篇文章主要介紹了SpringBoot3+Redis實(shí)現(xiàn)分布式鎖,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-07-07