Redis 存取 JSON 數(shù)據(jù)示例操作
Redis 存取 JSON 數(shù)據(jù)
本文來自網(wǎng)絡(luò),本人稍加修改
關(guān)于下面rejson安裝的修正!!!
rejson安裝我的按照下面的不行
我是下載rejson后,直接make,然后在src下發(fā)現(xiàn)有一個rejson.so,我直接用的這個
另外我啟動的時候也不顯示rejson信息,但是啟動redis后可以存取json格式
1. 簡介
Redis 本身有比較豐富的數(shù)據(jù)類型,例如 String、Hash、Set、List
JSON 是我們常用的數(shù)據(jù)類型,當(dāng)我們需要在 Redis 中保存 json 數(shù)據(jù)時是怎么存放的呢?
一般是用 String 或者 Hash,但還是不太方便,無法靈活的操作 json 數(shù)據(jù)
在 Redis 4.0 中,有一個重大改進:modules 模塊系統(tǒng),可以讓我們開發(fā)新的功能,集成到 redis 中
rejson 就是一個新的模塊,為 redis 提供了 json 存儲能力
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\"}"
這個命令是在 root 下新增了一個字段 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\"}"
這個命令使用 del 把 root 下的 name 字段刪除了
- 數(shù)字操作
 
ans 字段是數(shù)字類型,值為 42,下面對其執(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\"}"
還可以進行乘法操作
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\"}"
直接刪除整個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>
還有很多其他操作命令,具體可以查看項目文檔
3. 安裝
因為使用了模塊功能,所以需要 redis 4.0 以上版本
3.1 安裝流程
- 安裝 redis 4.0
 - 安裝相關(guān)系統(tǒng)依賴
 - 安裝 rejson 模塊
 - redis 加載 rejson 模塊
 
3.2 詳細安裝過程
安裝 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 可以使用這個命令 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
啟動 redis 時加載 rejson.so
redis-server --loadmodule /path/to/module/rejson.so
在啟動信息中會看到 rejson 的相關(guān)信息
...
<ReJSON> JSON data type for Redis
...
安裝完成,可以登錄 redis 執(zhí)行 json 命令了
4. 小結(jié)
rejson 讓我們可以在 redis 中存儲和操作 json 數(shù)據(jù),非常方便
而且通過體驗 rejson 模塊,還可以感受到 redis 模塊系統(tǒng)的強大,以后將會出現(xiàn)各種基于redis的強大功能
rejson 項目地址:
https://redislabsmodules.github.io/rejson/
到此這篇關(guān)于Redis 存取 JSON 數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Redis 存取 JSON 數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
 解決Redis報錯MISCONF?Redis?is?configured?to?save?RDB?snap
這篇文章主要給大家介紹了關(guān)于如何解決Redis報錯MISCONF?Redis?is?configured?to?save?RDB?snapshots的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下2023-11-11
 Redis Sentinel實現(xiàn)高可用配置的詳細步驟
這篇文章主要介紹了Redis Sentinel實現(xiàn)高可用配置的詳細步驟,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09
 SpringBoot3+Redis實現(xiàn)分布式鎖的配置方法
這篇文章主要介紹了SpringBoot3+Redis實現(xiàn)分布式鎖,本文通過實例代碼給大家介紹的非常詳細,感興趣的朋友跟隨小編一起看看吧2024-07-07

