redis数据类型基本操作(list,string,hash,keys相关操作),mongodb(增删改查)

news2024/11/25 18:30:08

1、 string类型数据的命令操作:
(1) 设置键值:
在这里插入图片描述
(2) 读取键值:
在这里插入图片描述
(3) 数值类型自增1:
在这里插入图片描述
(4) 数值类型自减1:
在这里插入图片描述
(5) 查看值的长度:
在这里插入图片描述
2、 list类型数据的命令操作:
(1)对列表city插入元素:Shanghai Suzhou Hangzhou
在这里插入图片描述
(2)将列表city里的头部的元素移除
在这里插入图片描述
(3)将name列表的尾部元素移除到number列表的头部
在这里插入图片描述
(4) 对一个已存在的列表插入新元素
在这里插入图片描述
在这里插入图片描述
(5)查看list的值长度
在这里插入图片描述
3、 hash类型数据的命令操作:
(1) 设置一个hash表,order表里包括的键值信息有:id:1,customer_name:张三
在这里插入图片描述
(2) 创建一个hash表,表里的键值批量插入
在这里插入图片描述
(3) 获取order对应的map的所有key
在这里插入图片描述
(4) 获取order对应的map的键值数量
在这里插入图片描述
(5) 获取order表里的id值
在这里插入图片描述
4、Keys相关的命令操作
(1) 查看key是否存在
ps(首先创建了mykey和mykey2再删除了mykey2,用exists判断key是否存在在则为1,不在则为0 )在这里插入图片描述
(2) 查找满足pattern的keys
在这里插入图片描述
(3) 查看key的超时时间
在这里插入图片描述
(4) 遍历key
在这里插入图片描述

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

  1. 创建一个数据库 名字grade
    在这里插入图片描述
  2. 数据库中创建一个集合名字 class
    在这里插入图片描述
  3. 集合中插入若干数据 文档格式如下
db.class.insert([{name:"zhang",age:10,sex:'m',hobby:['a','b','c']}])
  1. 查找
    查看班级所有人信息
db.class.find()

查看班级中年龄为8岁的学生信息

db.class.find({age:8})

查看年龄大于10岁的学生信息

db.class.find({age:{$gt:10}})

查看年龄在 4—8岁之间的学生信息

db.class.find({age:{$gt:4,$lte:8}})

找到年龄为6岁且为男生的学生

db.class.find({age:6,sex:'m'})

找到年龄小于7岁或者大于10岁的学生

db.class.find({$or:[age:{$lt:7},age:{$gt:10}]})

找到年龄是8岁或者11岁的学生

db.class.find({age:{$in:[8,11]}})

找到兴趣爱好有两项的学生

db.class.find({hobby:{$size:2}})

找到兴趣爱好有draw的学生

db.class.find({hobby:{$size:2}})

找到既喜欢画画又喜欢跳舞的学生

db.class.find({hobby:"draw"})

统计爱好有三项的学生人数

db.class.find({hobby:{$size:3}}).count()

找出本班年龄第二大的学生

db.class.find().sort({age:-1}).skip(1).limit(1)

查看学生的兴趣范围

db.class.distinct('hobby')

将学生按年龄排序找到年龄最大的三个

db.class.find().sort({age:-1}).limit(3)

删除所有 年级大于12或者小于4岁的学生

remove({$or:[{age:{$gt:12}},{age:{$lt:4}}]})
  1. 增加、更新、删除、统计
    将小红的年龄变为8岁 兴趣爱好变为 跳舞 画画
{$set:{age:8,hobby:['dance','draw']}}

追加小明兴趣爱好 唱歌

{$push:{hobby:'sing'}}

小王兴趣爱好增加 吹牛 打篮球

{$pushAll:{hobby:['吹牛','basketball']}}

小李增加爱好,跑步和唱歌,但是不要和以前的重复

{$addToSet:{hobby:{$each:['running','sing']}}}

该班所有同学年龄加1

update({},{$inc:{age:1}},false,true)

删除小明的sex属性

{$unset:{sex:0}}

删除小李兴趣中的第一项

{$pop:{hobby:-1}}

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

{$pull:{hobby:'draw'}}

增加分数域 score:{‘chinese’:88,‘english’:78,‘math’:98}
按照性别分组统计每组人数

aggregate({$group:{_id:'$sex',num:{$sum:1}}})

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

aggregate([{$group:{_id:'$name',num:{$sum:1}}},{$match:{num:{$gt:1}}}])

统计每名男生的语文成绩

aggregate([{$match:{sex:'m'}},{$project:{_id:0,name:1,'score.chinese':1}}])

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

aggregate([{$match:{sex:'w'}},{$sort:{'score.english':-1}}])

List的应用场景:论坛评论、消息队列
Hash的应用场景:java里结构化的信息存储,例如用户个人信息(姓名、性别、兴趣爱好)用hash结构存储

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/764966.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java面试突击

Java面向对象有哪些特征,如何应用 ​ 面向对象编程是利用类和对象编程的一种思想。万物可归类,类是对于世界事物的高度抽象 ,不同的事物之间有不同的关系 ,一个类自身与外界的封装关系,一个父类和子类的继承关系&…

三菱PLC 控制灯一秒钟交替闪烁

三菱PLC中常用的特殊继电器: M8000 上电一直ON标志 M8002 上电导通一次 M8004 PLC出错 M8005 PLC备用电池电量低标志 M8011 10ms时钟脉冲 M8012 100ms时钟脉冲 M8013 1s时钟脉冲 M8014 1min时钟脉冲 M8034…

【论文笔记】图像修复MPRNet:Multi-Stage Progressive Image Restoration 含代码解析

目录 一、介绍 二、使用方法 1.推理 2.训练 三、MPRNet结构 1.整体结构 2.CAB(Channel Attention Block) 3.Stage1 Encoder 4.Stage2 Encoder 5.Decoder 6.SAM(Supervised Attention Module) 7.ORSNet(Original Resolution Subnetwork) 四、损失函数 1.Charbonni…

[LINUX]之grep文本过滤

linux通过使用grep -v操作来实现文本过滤 新创建文本如下 执行过滤命令如下,已经过滤了test3 cat test.txt |grep -v "test3"

Dockerd的迁移与备份

1、容器保存为镜像 (1) 通过以下命令将容器保存为镜像 # 保存nginx容器为镜像 docker commit 容器名称 镜像名称 例如:docker commit mynginx mynginx_i(2)用 docker ps -a 查看所有的容器 (3&#xf…

15-C++基本算法-贪心法

📚 理论基础 贪心法(Greedy Algorithm)是一种常见的算法思想,它在每一步选择中都采取当前状态下最优的选择,以期望获得全局最优解。贪心法通常适用于问题具有最优子结构和贪心选择性质的情况。 适用场景 贪心法适用…

react 实现浮动可吸附悬浮窗,悬浮球,悬浮按钮,支持拖动拖拽功能(suspend-button)

前言: 最近在做移动端,有个需求是 实现一个浮动球可拖拽,能吸附(吸附到 左右两则,距离哪进就吸附到哪边)。 实现过程: 使用 suspend-button (但是此组件不支持 ts 和pc端&#x…

VMWare安装统信UOS虚拟机

单击 创建新的虚拟机 按钮,然后选择 自定义, 然后 下一步 硬件兼容性 选择 Workstation16.x ,然后 下一步 选择“稍后安装操作系统”, 然后 下一步 选择 Linux , 再选 版本 CentOS 8 64位/ Ubuntu 均可,然…

【数据结构之树】初阶数据结构之树的实现及其各种方式(上)

文章目录 😏专栏导读🤖文章导读🙀树的预备知识🙀二叉树😳树的代码实现及其各类讲解🌲树的结构体初始化 总结 😏专栏导读 👻作者简介:M malloc,致力于成为嵌入…

LinkNet分割模型搭建

原论文:LinkNet: Exploiting Encoder Representations for Efficient Semantic Segmentation 直接步入正题~~~ 一、LinkNet 1.decoder模块 class DecoderBlock(nn.Module):def __init__(self, in_channels, n_filters): #512, 256super(DecoderBlock, self).__in…

计算机毕业论文选题推荐|软件工程|信息管理|数据分析|系列二

文章目录 导文题目导文 计算机毕业论文选题推荐|软件工程|信息管理|数据分析|系列二 (***语言)==使用其他任何编程语言 例如:基于(***语言)门窗账务管理系统的设计与实现 得到:基于JAVA门窗账务管理系统的设计与实现 基于vue门窗账务管理系统的设计与实现 等等 题目 …

关于21电赛数字识别

这里我们只讲数字识别的代码。 关于模型的训练,这里就不多讲了,看我的这篇文章: K210学习篇(八)在MaixHub训练模型_ODF..的博客-CSDN博客 这里着重讲我们得到训练后的模型该怎么去修改以及和stm32单片机通信。 当我们把下载的模型解压后,就得到一些这些文件,我们只需…

EasyDSS视频直播点播平台如何修改登录密码与开启接口鉴权?

随着互联网的发展,网络安全问题也越来越受到重视。近期我们也对旗下所有的视频平台进行了技术升级,以增强平台的数据安全性,保障用户的信息安全。用户也可以通过以下指导步骤,对平台相关配置进行修改,提高保护等级。 1…

阻塞、挂起和睡眠

挂起(主动)和阻塞(被动) 本质:正在执行的进程/线程,由于某些原因主动或者被动的释放 CPU,暂停执行;挂起会将进程移出内存,阻塞的进程还在内存中;挂起时会释放…

CSDN发表文章的常用语法说明

CSDN常用语法说明 一、标题二、文本样式三、列表四、图片五、链接六、目录一级目录二级目录三级目录 七、表格八、注释九、自定义列表十、LaTeX 数学公式十一、插入甘特图十二、插入UML图十三、插入Mermaid流程图十五、插入Flowchart流程图十六、 插入类图十七、快捷键十八、脚…

汽车供应链专场对接会 | 8月25日大会同期活动

爱普搜汽车供应链对接会,是根据采购商的项目需求,有针对性地组织全国各地采购商与供应商,进行面对面交流与沟通,促成实质性交易。参会群体为汽车行业制造型企业、主机厂、Tier1/2。 供应商在参加对接会前已做足功课,现…

使用Linux Deploy搭建服务器(二)使用chroot容器安装linux发行版

一、先下载好软件 Linux Deploy(一)Linux Deploy简介与软件安装_吻等离子的博客-CSDN博客 二、搭建debian 首先手机要获取root权限 linux Deploy支持许多发行版linux,发行版建议选择Debian,这个版本最好装,Ubuntu …

提升互联网创业项目在搜索结果中的排名的SEO技巧

搜索引擎优化(SEO)技巧:提升互联网创业项目在搜索结果中的排 在当今竞争激烈的互联网创业领域,拥有一个高排名的搜索结果对于项目的成功至关重要。搜索引擎优化(SEO)是一种有效的策略,可以提高您的互联网创业项目在搜索…

RocketMQ 5.1.0 在java中的使用

版本&#xff1a; 当前测试版本&#xff1a;springBoot 2.3.9、 RocketMQ 5.1.0 Maven或Gradle RocketMQ的依赖项&#xff1a; <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-client</artifactId><version>5…

国内开源框架(快速开发,避免重复造轮子)

若依开源框架&#xff08;最容易上手&#xff0c;轻巧简洁&#xff09; 若依开源框架是一款基于SpringBoot2.x和Vue.js的前后端分离的权限管理系统。它采用了前后端分离的架构&#xff0c;使得系统更加灵活、易扩展。同时&#xff0c;它还集成了多种常见的功能模块&#xff0c…