redis和mongdb的一些基本操作和命令以及使用python连接redis和mongdb
第一部分(基础题)
- 使用geo数据类型,添加北京、上海、武汉、广州、乌鲁木齐、拉萨六个城市的经纬度信息,连接Redis客户端实现以下命令(共计10分):
录入信息:
单条插入:
多条插入:
- 计算北京到广州,北京到乌鲁木齐的距离(输出单位为km)。(8分)
北京到上海的距离:
北京到乌鲁木齐的距离:
- 以武汉为中心,2000公里为半径,统计该范围内所在的城市。(2分)
要求给出操作命令截图和结果截图。
2、连接MongoDB客户端执行以下操作,要求给出操作命令截图和结果截图,数据表如下所示。(共计20分)
name |
sex |
birthday |
|
city |
zhang |
male |
1995-01-24 |
zhang@sina.com |
shanghai |
wang |
female |
1995-01-24 |
wang@163.com |
|
li |
female |
1991-03-04 |
guangzhou |
|
zhao |
male |
1996-11-03 |
zhao@126.com |
- 创建名为Demo的数据库,并在Demo中创建名为info的集合。(4分)
- 将集合名info修改为Person。(2分)
- 向Person集合中批量插入表中的内容。(4分)
表中空数据使用0代替
- 将文档中sex为female的city信息更新为“beijing”(只更新满足条件的第一个文档)(2分)
查看更新后的表
- 删除集合中birthday为“1995-01-24”的文档(只删除满足条件的第一个文档)(2分)
查看:
- 对Person集合中的name和birthday键建立复合索引,并设置索引名为“Person_index”(3分)
- 使用管道操作对sex进行分组求和。(3分)
第二部分(编程题)
使用java或python语言连接Redis和MongoDB数据库,完成以下习题,要求给出必要的文字说明,代码截图以及程序运行结果截图。
1.将下列数据用Redis的Set集合来存储,分别添加集合A和集合B元素,集合A={a,b,c,d,e},集合B={c,d,e,f,g,i}。(共计16分)
- 分别统计集合A和集合B的元素数。(4分)
- 判断元素m是否存在于集合B中。(2分)
- 获取集合B所有元素。(2分)
- 求集合A、B的并集、交集、差集。(8分)
2. MongoDB数据操作(每小题2分,共计14分):
- 使用pip install pymong命令安装pymong包,新建数据库test_mongdb1。
(2)在test_mongdb数据库下新建集合testcollection
在shell界面查看:
(3)对集合testcollection重命名为person。(对集合重命名应该放在插入数据之后的位置上,否则无意义,数据保存的位置还是在之前的集合中。
另外test.rename(‘person’)应该放在操作的最后面否则在shell界面中的内容不会被修改。
例如test.rename()在没有插入内容前:
在shell界面查看:
在插入内容后:
Shell界面查看,发现数据没有被修改:
对集合重命名的语句:
在shell界面查看集合:
(4) 向集合person中插入以下文档数据
_id |
name |
sex |
age |
1 |
xiaoming |
man |
21 |
2 |
xiaohong |
woman |
20 |
3 |
xiaoliang |
man |
22 |
- 检索person中的所有文档。
(6)更新xiaohong的信息为23岁。
在shell界面查看信息:
(7)删除xiaoliang的信息。
在shell界面查看信息:
第三部分(操作题)
- 搭建Redis主从集群,该集群由一个主节点(master)和三个从节点(slave)组成,主节点端口号设置为9001,从节点端口号分别设置为9002、9003、9004。主从集群搭建完成后,分别在主节点和从节点执行读命令和写命令(测试数据自己指定即可)。(15分)
1)修改redis.conf文件,开启rdb,关闭aof
开启rdb持久化:
关闭aof:
2)新建test2文件夹用来搭建主从集群完成测试(一个主节点、三个从节点)
mkdir test(test2文件夹与root目录同级)
3)在test目录下新建9001、9002、9003、9004文件夹存放redis.conf文件
Mkdir 9001、9002、9003、9004
4)把export/servers/redis目录下的redis.conf文件分别复制到这四个文件夹中(我原有的redis.conf文件在export/servers/redis中)
5)依次配置redis.conf文件,#去掉密码(方便操作)
#在redis.conf文件开头加入redis实例的声明 ip(确保三个节点均在同一个ip地址)
注释密码:
加入redis实例的声明ip:
确保端口号正确
修改目录文件(分别在各自目录生成rdb文件):
后台启动改为前台启动(方便查看日志信息):
6)打开多个终端并分别按照端口号重命名,开启多终端执行模式,同时启动两个redis.conf文件(在test目录下执行分别执四个个命令,端口号不一样其他操作命令一样,下面两个演示):
7)开启主从关系
8)读写分离测试
主节点读写操作
从节点9002读写操作
从节点9003读写操作
- 搭建哨兵集群用来监测题目(1)中搭建的主从集群,四个哨兵端口号分别设置为29001、29002、29003、29004。(10分)
1)进入到test2目录下,新建四个文件夹mkdir 29001 29002 29003 29004
2)分别进入文件夹下创建一个sentinel.conf文件配置一下内容
3)在29002,29003,29004目录下分别配置文件,只需要修改端口号和路径即可
4)使用命令redis-sentinel 29001/sentinel.conf开启哨兵,每个哨兵开启只需要将“29001”修改成对应的哨兵文件即可。
- 让主节点9001停机,观察29001至29004四个哨兵的日志信息,在9002、9003、9004三个从节点中选取一个节点作为新的主节点,并分别在新的主节点和从节点上完成读写测试(测试数据自己指定即可)(15分)
- 让主节点宕机,观察日志信息发现9003成为主节点。
- 对9001节点进行写操作,发现无法写入
3)查看9003节点的当前状态,发现节点成为了主节点
4)对9003节点进行读写测试,发现既可以写数据又可以读数据。
要求:给出必要的文字说明,以及必要的截图,包括配置文件修改、主从集群搭建、哨兵集群的搭建、集群节点状态信息、主从节点读写数据测试等。
redis和mongdb的一些基本操作和命令以及使用python连接redis和mongdb相关推荐
- Geohash的原理介绍、Redis的Geo命令总结、Python使用Redis的Geo模块
Geohash 一.GeoHash编码介绍 参考: https://hogwartsrico.github.io/2015/01/22/About-GeoHash/ Geohash原理 - 简书 (j ...
- python连接redis集群如何释放内存_python 连接 redis cluster 集群
一. redis集群模式有多种, cluster模式只是其中的一种实现方式, 其原理请自行谷歌或者百度, 这里只举例如何使用Python操作 redis cluster 集群 二. python 连接 ...
- python连接redis数据库
python连接redis数据库 Python的第三方库 1. 初始化并创建连接 1.1 第一种方法 (连接池) 1.2 第二种方法 (普通) 2. 写入数据 2.1 向字符串中写入数据 2.2 设置 ...
- python连接Redis,学习哈希表基本操作
需要redis安装的请看网址 (https://www.runoob.com/redis/redis-install.html) python操作redis的第三方库叫"redis-py&q ...
- 通过命令行方式远程连接redis
1.首先安装redis客户端 yum install redis 2.远程连接redis redis-cli -h host -p port -a password host:远程redis服务器ho ...
- Python 连接 redis 模块
redis 模块使用可以分类为: 连接方式 连接池 操作 String操作 Hash操作 List操作 Set操作 Sort Set操作 管道 发布订阅 (1)操作模式 redis提供两个类Redis ...
- python连接redis有中文_Python连接Redis并操作
首先开启redis的外连 sch01ar@ubuntu:~$ sudo vim /etc/redis/redis.conf 把bind 127.0.0.1这行注释掉 然后重启redis sudo /e ...
- python+redis_redis操作 + python连接redis(StrictRedis)
Redis 方法命令总结 keysstringhashlistsetzset exists set hset lpush sadd zadd type setex hmset rpush smembe ...
- Python 连接redis密码中特殊字符问题
连接方法: self.pool = redis.ConnectionPool.from_url(self.redis_url) opredis = redis.Redis(connection_poo ...
最新文章
- .NET Core 3.0-preview3 发布
- http://www.cnoug.org/viewthread.php?tid=9292
- 画出多项式的硬件编码_信息论与编码习题解答.doc
- linux sftp创建多用户,同一台 Centos (Linux)服务器设置多个sftp 账号,并限制用户只能访问指定文件路径...
- python代码中函有中文报错的解决方法
- Dynamic web project下SSM整合
- Android设置标题栏图标
- LLVM LLD COFF格式分析
- 最新批量搜狗域名添加绑定工具
- xmos固件u8_XU208 USB数字界面 XMOS U8升级版 模块_便宜推
- Android获取wifi的ip地址
- Linux使用uinput实现虚拟鼠标
- 83. 测试是软件开发的工程严谨度
- Keil(MDK-ARM)的安装与注册【MDK和C51共存】
- 百度搜索引擎推广的方式和优势有哪些呢?
- java编译错误:程序包javax.servlet不存在javax.servlet.*
- ISO20000/ISO27001双重认证给企业带来的收益
- Java Json Binding JSON-B使用示例
- 神码AI从工具化到智能化,人工智能写作究竟发展到了哪一步?
- android 计算到期日期,在Android上计算日期
热门文章
- 怎样通过几何画板中文版输入固定度数的角
- 排序计算机教案,八年级信息技术教案:数据排序
- ASP.NET MVC 开源建站系统 ZKEACMS 推荐,从此网站“拼”起来
- 浙工商计算机调剂,2021考研调剂:浙江工商大学硕士研究生调剂信息公告
- 如何写一个video播放器的demo?
- 面试技巧:一分钟自我介绍
- apploc.bat
- 防民之口,慎于防川!谈谈遇害的沙特记者。
- 计算机二级容易,计算机二级哪个最容易考过?
- 串口服务器有没有协议转换,协议转换器与moxa串口服务器通讯配置.doc