redis及mongoDB数据库操作

这篇具有很好参考价值的文章主要介绍了redis及mongoDB数据库操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Redis作业

1、string类型数据的命令操作:
(1) 设置键值:
SET key value
例如:
SET name "John"

(2) 读取键值:
GET key
例如:
GET name

(3) 数值类型自增1:
INCR key
例如:
INCR count

(4) 数值类型自减1:
DECR key
例如:
DECR count

(5) 查看值的长度:
STRLEN key
例如:
STRLEN name

2、list类型数据的命令操作:
(1)对列表city插入元素:Shanghai Suzhou Hangzhou
LPUSH key element [element ...]
例如:
LPUSH city Shanghai
LPUSH city Suzhou
LPUSH city Hangzhou

(2)将列表city里的头部的元素移除
LPOP key
例如:
LPOP city

(3)将name列表的尾部元素移除到number列表的头部
RPOPLPUSH source destination
例如:
RPOPLPUSH name number

(4) 对一个已存在的列表插入新元素
RPUSH key element [element ...]
例如:
RPUSH city Beijing

(5)查看list的值长度
LLEN key
例如:
LLEN city

3、hash类型数据的命令操作:
(1) 设置一个hash表,order表里包括的键值信息有:id:1,customer_name:张三
HSET key field value
例如:
HSET order id 1
HSET order customer_name "张三"

(2) 创建一个hash表,表里的键值批量插入
HMSET key field value [field value ...]
例如:
HMSET order id 1 customer_name "张三"

(3) 获取order对应的map的所有key
HKEYS key
例如:
HKEYS order

(4) 获取order对应的map的键值数量
HLEN key
例如:
HLEN order

(5) 获取order表里的id值
HGET key field
例如:
HGET order id

4、Keys相关的命令操作
(1) 查看key是否存在
EXISTS key
例如:
EXISTS name

(2) 查找满足pattern的keys
KEYS pattern
例如:
KEYS user_*

(3) 查看key的超时时间
TTL key
例如:
TTL session_id

(4) 遍历key
SCAN cursor [MATCH pattern] [COUNT count]
例如:
SCAN 0 MATCH *

作业二:举例说明list和hash的应用场景,每个至少一个场景

List应用场景:
1. 消息队列:List结构在实现消息队列中非常常见。可以将消息作为元素依次插入到List的尾部,消费者通过弹出List头部的元素来获取消息。这种方式可以实现简单的消息发布与订阅模式。

示例场景:在一个实时聊天应用中,将聊天消息作为List的元素依次插入到队列尾部,然后消费者可以从队列头部获取消息并进行处理。

Hash应用场景:
1. 缓存数据存储:由于Hash结构拥有键值对的特性,非常适合用于缓存数据的存储。可以将对象的属性作为Hash的字段,属性值作为Hash的值,这样可以将一个完整对象存储在一个Hash结构中。

示例场景:在一个电子商务网站中,可以将商品信息存储在Hash结构中,其中每个商品对应一个Hash结构,商品的各种属性(名称、价格、描述等)可以作为Hash的字段,并且可以通过Hash操作快速获取和更新商品信息。

总结:
List适用于按照顺序存储和处理数据的场景,常用于消息队列、日志队列等实时数据处理场景。
Hash适用于将复杂对象或结构化数据存储在Redis中,并方便地对其中的字段进行读取和更新的场景,常用于缓存数据、存储对象信息等。

mongodb作业  

1. 创建一个数据库 名字grade
use grade

2. 数据库中创建一个集合名字class
db.createCollection("class")

3. 集合中插入若干数据
db.class.insertMany([
  {
    name: 'zhang',
    age: 10,
    sex: 'm',
    hobby: ['a', 'b', 'c']
  },
  {
    name: 'li',
    age: 8,
    sex: 'f',
    hobby: ['draw', 'sing', 'dance', 'basketball', 'football', 'pingpong', 'computer']
  },
])

4. 查找

1、查看班级所有人信息
db.class.find()

2、 查看班级中年龄为8岁的学生信息
db.class.find({ age: 8 })

3、 查看年龄大于10岁的学生信息
db.class.find({ age: { $gt: 10 } })

5、查看年龄在4~8岁之间的学生信息
db.class.find({ age: { $gte: 4, $lte: 8 } })

6、 找到年龄为6岁且为男生的学生
db.class.find({ age: 6, sex: 'm' })

7、 找到年龄小于7岁或者大于10岁的学生
db.class.find({ $or: [{ age: { $lt: 7 } }, { age: { $gt: 10 } }] })

8、 找到年龄是8岁或者11岁的学生
db.class.find({ age: { $in: [8, 11] } })

9、 找到兴趣爱好有两项的学生
db.class.find({ hobby: { $size: 2 } })

10、找到兴趣爱好有draw的学生
db.class.find({ hobby: 'draw' })

11、 找到既喜欢画画又喜欢跳舞的学生
db.class.find({ hobby: { $all: ['draw', 'dance'] } })

12、 统计爱好有三项的学生人数
db.class.find({ hobby: { $size: 3 } }).count()

13、 找出本班年龄第二大的学生
db.class.find().sort({ age: -1 }).limit(1).skip(1)

14、查看学生的兴趣范围
db.class.distinct('hobby')

15、将学生按年龄排序找到年龄最大的三个
db.class.find().sort({ age: -1 }).limit(3)

16、 删除所有年龄大于12或者小于4岁的学生
db.class.deleteMany({ $or: [{ age: { $gt: 12 } }, { age: { $lt: 4 } }] })

5. 增加、更新、删除、统计
1、 将小红的年龄变为8岁,兴趣爱好变为跳舞、画画
db.class.updateOne({ name: 'zhang' }, { $set: { age: 8, hobby: ['dance', 'draw'] } })

2、 追加小明兴趣爱好:唱歌
db.class.updateOne({ name: 'ming' }, { $push: { hobby: 'sing' } })

3、小王兴趣爱好增加:吹牛、打篮球
db.class.updateOne({ name: 'wang' }, { $addToSet: { hobby: { $each: ['吹牛', '打篮球'] } } })

4、小李增加爱好:跑步和唱歌,但是不要和以前的重复
db.class.updateOne({ name: 'li' }, { $addToSet: { hobby: { $each: ['跑步', '唱歌'] } } })

5、 该班所有同学年龄加1
db.class.updateMany({}, { $inc: { age: 1 } })

6、 删除小明的sex属性
db.class.updateOne({ name: 'ming' }, { $unset: { sex: '' } })

7、删除小李兴趣中的第一项

 db.class.updateOne({ name: 'li' }, { $pop: { hobby: -1 } })

8、将小红兴趣中的画画爱好删除

db.class.updateOne({ name: 'wang' }, { $pull: { hobby: 'draw' } })

 增加分数域 score:{'chinese':88,'english':78,'math':98}

db.class.updateMany({}, { $set: { score: { chinese: 0, english: 0, math: 0 } } })

1、按照性别分组统计每组人数

db.class.aggregate([ { $group: { _id: '$sex', count: { $sum: 1 } } } ])

2、按照姓名分组,过滤出有重名的同学

db.class.aggregate([ { $group: { _id: '$name', count: { $sum: 1 } } }, { $match: { count: { $gt: 1 } } }, { $project: { _id: 0, name: '$_id' } } ])

3、统计每名男生的语文成绩

 db.class.aggregate([ { $match: { sex: 'm' } }, { $group: { _id: '$name', chinese: { $first: '$score.chinese' } } } ])

4、将女生按照英语分数降序排列

db.class.find({ sex: 'f' }).sort({ 'score.english': -1 })文章来源地址https://www.toymoban.com/news/detail-587907.html

到了这里,关于redis及mongoDB数据库操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • MongoDB-数据库文档操作(1)

    任务描述 文档数据在 MongoDB 中的插入和更新。 相关知识 本文将向大家介绍文档数据在 MongoDB 中的基本操作。 文档的数据结构和 JSON 基本一样,所有存储在集合中的数据都是 BSON 格式。BSON 是一种类 JSON 的一种二进制形式的存储格式,简称: Binary JSON 。 本文将教你掌握:

    2024年01月17日
    浏览(34)
  • MongoDB-数据库文档操作(2)

    任务描述 文档数据在 MongoDB 中的查询和删除。 相关知识 本文将教你掌握: 查询文档命令; 删除文档命令。 查询文档 我们先插入文档到集合 stu1 : 然后查看 stu1 ,命令和结果如图1所示(因为我们没有设置 _id ,所以 MongoDB 会默认生成: 图 1 上述显示的文档格式不够整齐,

    2024年01月18日
    浏览(30)
  • Python 操作 MongoDB 数据库介绍

    MongoDB 是一款面向文档型的  NoSQL  数据库,是一个基于分布式文件存储的开源的非关系型数据库系统,其内容是以  K/V  形式存储,结构不固定,它的字段值可以包含其他文档、数组和文档数组等。其采用的  BSON (二进制 JSON )的数据结构,可以提高存储和扫描效率,但空

    2024年02月10日
    浏览(28)
  • MongoDB创建用户 、数据库、索引等基础操作

    MongoDB的权限认证是相对来说比较复杂的,不同的库创建后需要创建用户来管理。 本机中的MongoDB是docker 启动的,所以先进入docker的镜像中 这样就进入到了镜像MongoDB中,然后输入命令连接MongoDB数据库   注意用户名密码以及数据库名称  出现这个界面说明登录成功 接下来开始

    2024年02月14日
    浏览(27)
  • 分布式数据库NoSQL(二)——MongoDB 数据库基本操作

    MongoDB 是一个基于分布式文件存储的数据库。由 C++ 语言编写。旨在为 WEB 应用提供可扩展的高性能数据存储解决方案。 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 json 的

    2024年02月06日
    浏览(36)
  • MongoDB常用的操作(服务器、数据库、集合)

    前面两篇已经介绍了MongoDB系统架构及其BSON数据类型。本文将讲解基本的MongoDB操作。 一、MongoDB启动命令 启动MongoDB 查看是否启动成功 重启MongoDB 关闭MongoDB 二、使用init命令操作MongoDB 启动MongoDB 查看是否启动成功 重启MongoDB 关闭MongoDB 三、启动mongodb客户端 查看该服务是否启动

    2024年02月07日
    浏览(46)
  • 数据库操作入门:PyMongo 和 MongoDB 的基本用法

    MongoDB是一种流行的NoSQL数据库,它将数据存储在类似JSON的文档中,使数据库非常灵活和可扩展 Python需要一个MongoDB驱动程序来访问MongoDB数据库。在本教程中,我们将使用MongoDB驱动程序 \\\"PyMongo\\\"。建议使用PIP来安装 \\\"PyMongo\\\",确保您的Python环境已安装PIP。 在命令行中导航到PIP的

    2024年02月05日
    浏览(56)
  • Mongodb 以及 node.js中使用mongoose操作数据库

    目录 1、lowdb 2、Mongodb是什么? 3、Mongodb核心概念 4、Mongodb的下载与使用 5、数据库与集合命令 5.1、数据库命令 5.2、集合命令 5.3、文档命令 6、Mongoose 6.1、插入文档 6.2、字段类型 6.3、字段值验证 6.3.1、必填项 6.3.2、默认值 6.3.3、枚举值 6.3.4、唯一值 6.4、删除文档 6.5、更新文

    2024年02月11日
    浏览(35)
  • python常用库之pymongo库(Python操作Mongodb数据库)| Django项目连接MongoDB方式选型(MongoEngine)

    github:https://github.com/mongodb/mongo-python-driver PyMongo用于与Python与MongoDB数据库进行交互的工具。bson包是Python的BSON格式 的实现。Pymongo包是MongoDB的本地Python驱动程序。gridfs包是gridfs 的pymongo实现。 Pymongo支持MongoDB 3.6、4.0、4.2、4.4、5.0和6.0。 总结:PyMongo 是 MongoDB 与 Django 交互的标准

    2024年02月10日
    浏览(43)
  • java springboot整合Mongodb 对数据库集合进行增删查改操作

    下面 我们就来做 springboot 整合Mongodb的工作 我们终端打开 Mongodb 安装目录下的bin目录 然后执行 启动服务 然后 打开我们的 springboot 项目 在pom.xml 文件中 导入坐标 有了依赖之后 就还差配置 打开项目中的 application 配置文件 我这里用的 yml 格式 我们在上面 打个 mong 它就会弹出

    2024年01月18日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包