第一部分(基础题)

  1. 使用geo数据类型,添加北京、上海、武汉、广州、乌鲁木齐、拉萨六个城市的经纬度信息,连接Redis客户端实现以下命令(共计10分):

录入信息:

单条插入:

多条插入:

  1. 计算北京到广州,北京到乌鲁木齐的距离(输出单位为km)。(8分)

北京到上海的距离:

北京到乌鲁木齐的距离:

  1. 以武汉为中心,2000公里为半径,统计该范围内所在的城市。(2分)

要求给出操作命令截图和结果截图。

2、连接MongoDB客户端执行以下操作,要求给出操作命令截图和结果截图,数据表如下所示。(共计20分)

name

sex

birthday

email

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

  1. 创建名为Demo的数据库,并在Demo中创建名为info的集合。(4分)

  1. 将集合名info修改为Person。(2分)

  1. 向Person集合中批量插入表中的内容。(4分)

表中空数据使用0代替

  1. 将文档中sex为female的city信息更新为“beijing”(只更新满足条件的第一个文档)(2分)

查看更新后的表

  1. 删除集合中birthday为“1995-01-24”的文档(只删除满足条件的第一个文档)(2分)

查看:

  1. 对Person集合中的name和birthday键建立复合索引,并设置索引名为“Person_index”(3分)

  1. 使用管道操作对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分)

  1. 分别统计集合A和集合B的元素数。(4分)

  1. 判断元素m是否存在于集合B中。(2分)

  1. 获取集合B所有元素。(2分)

  1. 求集合A、B的并集、交集、差集。(8分)

2. MongoDB数据操作(每小题2分,共计14分):

  1. 使用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

  1. 检索person中的所有文档。

(6)更新xiaohong的信息为23岁。

在shell界面查看信息:

(7)删除xiaoliang的信息。

在shell界面查看信息:

第三部分(操作题)

  1. 搭建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. 搭建哨兵集群用来监测题目(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”修改成对应的哨兵文件即可。

  1. 让主节点9001停机,观察29001至29004四个哨兵的日志信息,在9002、9003、9004三个从节点中选取一个节点作为新的主节点,并分别在新的主节点和从节点上完成读写测试(测试数据自己指定即可)(15分)
  1. 让主节点宕机,观察日志信息发现9003成为主节点。

  1. 对9001节点进行写操作,发现无法写入

3)查看9003节点的当前状态,发现节点成为了主节点

4)对9003节点进行读写测试,发现既可以写数据又可以读数据。

要求:给出必要的文字说明,以及必要的截图,包括配置文件修改、主从集群搭建、哨兵集群的搭建、集群节点状态信息、主从节点读写数据测试等。

redis和mongdb的一些基本操作和命令以及使用python连接redis和mongdb相关推荐

  1. Geohash的原理介绍、Redis的Geo命令总结、Python使用Redis的Geo模块

    Geohash 一.GeoHash编码介绍 参考: https://hogwartsrico.github.io/2015/01/22/About-GeoHash/ Geohash原理 - 简书 (j ...

  2. python连接redis集群如何释放内存_python 连接 redis cluster 集群

    一. redis集群模式有多种, cluster模式只是其中的一种实现方式, 其原理请自行谷歌或者百度, 这里只举例如何使用Python操作 redis cluster 集群 二. python 连接 ...

  3. python连接redis数据库

    python连接redis数据库 Python的第三方库 1. 初始化并创建连接 1.1 第一种方法 (连接池) 1.2 第二种方法 (普通) 2. 写入数据 2.1 向字符串中写入数据 2.2 设置 ...

  4. python连接Redis,学习哈希表基本操作

    需要redis安装的请看网址 (https://www.runoob.com/redis/redis-install.html) python操作redis的第三方库叫"redis-py&q ...

  5. 通过命令行方式远程连接redis

    1.首先安装redis客户端 yum install redis 2.远程连接redis redis-cli -h host -p port -a password host:远程redis服务器ho ...

  6. Python 连接 redis 模块

    redis 模块使用可以分类为: 连接方式 连接池 操作 String操作 Hash操作 List操作 Set操作 Sort Set操作 管道 发布订阅 (1)操作模式 redis提供两个类Redis ...

  7. python连接redis有中文_Python连接Redis并操作

    首先开启redis的外连 sch01ar@ubuntu:~$ sudo vim /etc/redis/redis.conf 把bind 127.0.0.1这行注释掉 然后重启redis sudo /e ...

  8. python+redis_redis操作 + python连接redis(StrictRedis)

    Redis 方法命令总结 keysstringhashlistsetzset exists set hset lpush sadd zadd type setex hmset rpush smembe ...

  9. Python 连接redis密码中特殊字符问题

    连接方法: self.pool = redis.ConnectionPool.from_url(self.redis_url) opredis = redis.Redis(connection_poo ...

最新文章

  1. .NET Core 3.0-preview3 发布
  2. http://www.cnoug.org/viewthread.php?tid=9292
  3. 画出多项式的硬件编码_信息论与编码习题解答.doc
  4. linux sftp创建多用户,同一台 Centos (Linux)服务器设置多个sftp 账号,并限制用户只能访问指定文件路径...
  5. python代码中函有中文报错的解决方法
  6. Dynamic web project下SSM整合
  7. Android设置标题栏图标
  8. LLVM LLD COFF格式分析
  9. 最新批量搜狗域名添加绑定工具
  10. xmos固件u8_XU208 USB数字界面 XMOS U8升级版 模块_便宜推
  11. Android获取wifi的ip地址
  12. Linux使用uinput实现虚拟鼠标
  13. 83. 测试是软件开发的工程严谨度
  14. Keil(MDK-ARM)的安装与注册【MDK和C51共存】
  15. 百度搜索引擎推广的方式和优势有哪些呢?
  16. java编译错误:程序包javax.servlet不存在javax.servlet.*
  17. ISO20000/ISO27001双重认证给企业带来的收益
  18. Java Json Binding JSON-B使用示例
  19. 神码AI从工具化到智能化,人工智能写作究竟发展到了哪一步?
  20. android 计算到期日期,在Android上计算日期

热门文章

  1. 怎样通过几何画板中文版输入固定度数的角
  2. 排序计算机教案,八年级信息技术教案:数据排序
  3. ASP.NET MVC 开源建站系统 ZKEACMS 推荐,从此网站“拼”起来
  4. 浙工商计算机调剂,2021考研调剂:浙江工商大学硕士研究生调剂信息公告
  5. 如何写一个video播放器的demo?
  6. 面试技巧:一分钟自我介绍
  7. apploc.bat
  8. 防民之口,慎于防川!谈谈遇害的沙特记者。
  9. 计算机二级容易,计算机二级哪个最容易考过?
  10. 串口服务器有没有协议转换,协议转换器与moxa串口服务器通讯配置.doc