Redis 存取 JSON 数据示例操作

 更新时间:2024年02月01日 11:00:29   作者:老王聊技术  
JSON 是我们常用的数据类型,当我们需要在Redis中保存json数据时是怎么存放的呢?一般是用String或者Hash,但还是不太方便,无法灵活的操作json 数据,下面通过本文给大家介绍Redis存取JSON 数据示例操作,感兴趣的的朋友一起看看吧

Redis 存取 JSON 数据

本文来自网络,本人稍加修改

关于下面rejson安装的修正!!!

rejson安装我的按照下面的不行

我是下载rejson后,直接make,然后在src下发现有一个rejson.so,我直接用的这个

另外我启动的时候也不显示rejson信息,但是启动redis后可以存取json格式

1. 简介

Redis 本身有比较丰富的数据类型,例如 String、Hash、Set、List

JSON 是我们常用的数据类型,当我们需要在 Redis 中保存 json 数据时是怎么存放的呢?

一般是用 String 或者 Hash,但还是不太方便,无法灵活的操作 json 数据

在 Redis 4.0 中,有一个重大改进:modules 模块系统,可以让我们开发新的功能,集成到 redis 中

rejson 就是一个新的模块,为 redis 提供了 json 存储能力

2. 示例

2.1 基础操作

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设置命令
  • object 是 key
  • . 是json文档的root,后面的一串是具体的 json 数据值

第二条命令是获取 key 为 object 的json数据

2.2 json 内部操作

  • 获取某字段的值

127.0.0.1:6379> JSON.GET object .ans

"42"

命令中的 .ans 是目标路径,表示 root 下面的 ans

  • 设置某字段值

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 字段删除了

  • 数字操作

ans 字段是数字类型,值为 42,下面对其执行 +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
  • 安装相关系统依赖
  • 安装 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 的相关信息

...

<ReJSON> JSON data type for Redis

...

安装完成,可以登录 redis 执行 json 命令了

4. 小结

rejson 让我们可以在 redis 中存储和操作 json 数据,非常方便

而且通过体验 rejson 模块,还可以感受到 redis 模块系统的强大,以后将会出现各种基于redis的强大功能

rejson 项目地址:

https://redislabsmodules.github.io/rejson/

到此这篇关于Redis 存取 JSON 数据的文章就介绍到这了,更多相关Redis 存取 JSON 数据内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Redis入门基础常用操作命令整理

    Redis入门基础常用操作命令整理

    这篇文章主要为大家介绍了Redis入门基础常用操作命令的整理,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • Redis如何存储对象与集合示例详解

    Redis如何存储对象与集合示例详解

    redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、 zset(sorted set --有序集合)和hash(哈希类型)本文介绍了关于Redis是如何存储对象与集合的相关资料,需要的朋友可以参考下
    2018-05-05
  • 远程连接阿里云服务器上的redis报错的问题解决

    远程连接阿里云服务器上的redis报错的问题解决

    本文主要介绍了远程连接阿里云服务器上的redis报错的问题,出现 Redis Client On Error: Error: connect ECONNREFUSED 47.100.XXX.XX:6379 错误,下面就来介绍一下解决方法,感兴趣的可以了解一下
    2025-04-04
  • 利用redis实现聊天记录转存功能的全过程

    利用redis实现聊天记录转存功能的全过程

    社交类软件聊天功能必不可少,聊天记录存储的方式也比较多,比如文本,数据库,云等等,但是最好的选择还是redis进行存储,这篇文章主要给大家介绍了关于如何利用redis实现聊天记录转存功能的相关资料,需要的朋友可以参考下
    2021-08-08
  • Redis模仿发送手机验证码功能

    Redis模仿发送手机验证码功能

    这篇文章主要介绍了Redis模仿手机验证码发送功能,通过示例代码给大家讲解通过用户输入手机号以及验证码进行校验,代码简单易懂,需要的朋友可以参考下
    2021-09-09
  • Redis数据类型之散列类型hash命令学习

    Redis数据类型之散列类型hash命令学习

    这篇文章主要为大家介绍了Redis数据类型之散列类型hash命令学习,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • Redis保证数据不丢失的两种方法

    Redis保证数据不丢失的两种方法

    Redis 实现数据不丢失的关键在于使用了多种持久化机制,以确保数据在内存和磁盘之间的持久性,本文给大家介绍了Redis保证数据不丢失的两种方法,持久化和集群运行,我们分别来看它们两的具体实现细节,感兴趣的同学跟着小编一起来看看吧
    2023-11-11
  • Redis服务自动开启、设置密码和闪退问题及解决

    Redis服务自动开启、设置密码和闪退问题及解决

    本文介绍了如何在Windows上设置和配置Redis密码、实现Redis服务自动开启以及解决Redis闪退问题的方法和步骤
    2025-12-12
  • 设置Redis最大占用内存的实现

    设置Redis最大占用内存的实现

    本文主要介绍了设置Redis最大占用内存的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-05-05
  • Redis实现库存扣减的解决方案防止商品超卖

    Redis实现库存扣减的解决方案防止商品超卖

    在日常开发中有很多地方都有类似扣减库存的操作,比如电商系统中的商品库存,抽奖系统中的奖品库存等,基于redis实现扣减库存的具体实现,初始化库存回调函数(IStockCallback)扣减库存服务(StockService),感兴趣的朋友跟随小编一起看看吧
    2022-06-06

最新评论