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

第一部分(基础题)

  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节点进行读写测试,发现既可以写数据又可以读数据。

 

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

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司空良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值