
数据库相关
Redis知识
有意识的呼吸
优快云就是个笔记本。
展开
-
记一点MongoDB的坑
1、exceed quota如果导入库时,库文件大小超过6.4g就报错exceed quota,就删除mongodb.conf中的这几行:quota: enforced: false maxFilesPerDB: 8鬼晓得啥原因,改false没用,非得删了或加注释才能“配额无上限”下面是一份完整的mongodb.conf文件,记得改下数据和日志的存储位置:systemLog: destination: file path: 'E:\Database\Logs\mongodb.原创 2021-05-24 08:45:48 · 429 阅读 · 0 评论 -
Redis 优化 ——安全管理
Redis默认无密码,只能本机访问。一、设置密码找到配置文件:搜索关键字:requirepass取消这一行的注释,本行的foobared就是默认的密码,可以改成自己的密码。保存文件并重启,Redis便无法正常使用,如若想正常使用就需要:redis-cli -a 你的密码即可使用。对应pythonimport redisclient = redis.Redis(passwo...原创 2019-12-09 21:15:27 · 157 阅读 · 0 评论 -
Redis : python操作zset
一、任务添加数据到有序集合修改有序集合的评分基于评分排序基于位置排序基于成员查询排名和评分二、实现1、添加数据client.zadd('集合名', {值1:评分1, 值2:评分2, ...})import redisclient = redis.Redis()name1 = '张三'name2 = '李四'client.zadd('age_demo', {name1...原创 2019-12-09 11:59:44 · 1201 阅读 · 0 评论 -
Redis 实现排行榜
不再介绍数据库做实时排行榜的弊端,直接介绍Redis的有序集合的强大作用。1、从MongoDB中导入数据到Redis原创 2019-12-09 11:04:33 · 310 阅读 · 0 评论 -
Redis 发布消息与订阅频道
一、实例代码发送端client.publish()import redis, json, datetimeclient = redis.Redis()while True: message = input("输入要发布的消息:") now_time = datetime.datetime.now().strfttime("%Y-%m-%d %H:%M:%S") data = {...原创 2019-12-05 13:06:06 · 476 阅读 · 0 评论 -
python 操作Redis 哈希表
哈希表是一种数据结构,无论有多少键值对,查询时间都不会变。Redis中的哈希表可以保存43亿个键值对。一、案例:Redis记录用户在线状态如果使用字符串记录用户在线状态,那么有多少个用户在线,就有多少个Key。如果在绑定用户积分,那么就需要更多的key做更多的操作。所以我们引入了哈希表,使用哈希表只需要一个key即可记录用户的在线状态,如果要记录用户的积分信息,只需要再多一个key。impo...原创 2019-12-05 02:20:01 · 1101 阅读 · 0 评论 -
MongoDB优化——如何提高安全性
MongoDB 默认没有密码,只能本户访问。但是可以设置远程访问的,设置时一定要设置账号密码,不然…一、配置权限管理机制配置基于角色的访问控制,即RBAC。其中三个关键定义:特权:指资源和对资源的操作。角色:一个角色可以拥有多种特权。用户:一个用户可以被赋予不同角色。1、创建管理员用户启动命令行客户端,通过下列命令创建管理员用户,管理员用户的作用是创建其他用户,但管理员本身不能对...原创 2019-12-04 23:06:09 · 151 阅读 · 0 评论 -
MongoDB 优化——如何提高读写性能
1、批量插入与逐条插入的性能差异实测本地MongoDB插入10万条数据,逐条插入需要40秒,批量插入仅需2.3秒。单本地批量插入数据的性能就远远超过逐条插入数据的性能。如果使用远程数据库,那么这个I/O导致的时间消耗会比这个差异许多倍。那么,我们怎么正确的批量插入数据呢?下面推荐两个案例:使用Redis批量插入一次性数据import redisimport jsonimport p...原创 2019-12-04 20:32:50 · 4548 阅读 · 0 评论 -
MongoDB 拆联查询
一、拆分数组关键字:$unwindcollection.aggregate([ {'$unwind':'$字段名'},])一次只能拆开一个数组,继续拆开需要继续$unwind二、联集合查询先插入数据,数据在文末。实现下列案例:以微博用户为准,查询用户集合把查询结果中中用户数组展开把返回字段中的name和work字段变为普通字段以用户集合为基准,查询微博集合1、同时查询...原创 2019-12-04 14:23:30 · 320 阅读 · 0 评论 -
MongoDB 分组查询
模拟数据:import randomfrom pymongo import MongoClientclient = MongoClient("mongodb://localhost:27017").chapter_7.example_post3name_list = ['张三', '李四', '王五', '赵六']date_list = ['2018/6/1', '2018/6/2',...原创 2019-12-04 11:08:12 · 1032 阅读 · 0 评论 -
MongoDB 聚合查询
虽然python提供了更为强大易用的Pandas库,但一步做出来比分两步做总是舒服。一、聚合的基本语法collection.aggregate([阶段一,阶段二,,,,])这个的作用和collection.find()一样二、筛选数据的$matchcollection.aggregate([ {'$match':{和find一样的查询表达式}}])三、筛选和修改字段的$proj...原创 2019-12-04 10:08:27 · 154 阅读 · 0 评论 -
MongoDB AND OR 数组字段
一、AND 和 OR 操作数据演示ageidsalarysex2912664女1923086男1537662女2347001女2458042女2766847男1、查询符合两个条件 AND案例:查询成年男性去搬砖隐式 anddb.getCollection('example_data_1')...原创 2019-12-04 08:48:29 · 733 阅读 · 0 评论 -
Redis简易聊天室
import redisimport jsonimport hashlibclass RedisUtil(object): def __init__(self): self.chat_room_nick_set = 'chat_room_nick_set' self.cookie_nick = 'cookie-{}' self.ch...转载 2019-12-03 14:52:37 · 2113 阅读 · 1 评论 -
MongoDB开发员工信息管理系统
最近在看谢乾坤老师的《左手MongoDB,右手Redis》,我会将书中的代码都敲一遍,代码放在优快云挺方便的:一、插入数据import random, timefrom pymongo import MongoClientname = ["李小一", "诸葛小二", "南宫小三", "朱小四", "朱小六", "诸葛小七", "慕容小八", "南宫小九", "夏侯小十", "朱十一",...原创 2019-12-03 03:20:57 · 3658 阅读 · 9 评论 -
MongoDB 和 Python 不通用的操作
一、 空值在MongoDB中,空值写作null。在Python中,空值写作None。原命令:db.getCollection('example_data').find({'grade':null})在python中就要这么写:rows = collection.find(({'grade':None}))二、布尔值MongoDB中,真为true,假为false,首字母小写。Py...原创 2019-12-02 14:53:05 · 189 阅读 · 0 评论 -
redis替换队列
生产者消费者实例:import time, randomfrom queue import Queuefrom threading import Threadclass Producer(Thread): def __init__(self, queue): super().__init__() self.queue = queue de...原创 2019-12-01 17:36:24 · 189 阅读 · 0 评论 -
MongoDB常用命令
一、Database查看当前的数据库:db查看所有的数据库:show dbs /show databases切换数据库:use db_name删除当前的数据库:db.dropDatabase()二、集合向不存在的集合中第⼀次加⼊数据时, 集合会被创建出来db.createCollection(name,options)db.createCollection("stu")db.c...原创 2019-11-14 03:51:09 · 3972 阅读 · 0 评论 -
python操作Redis
一、安装引入redis包pip install redisfrom redis import StrictRedis二、StrictRedis对象⽅法建立连接:sr = StrictRedis(host='localhost', port=6379, db=0)可以简写:sr=StrictRedis()根据不同的类型,拥有不同的实例⽅法可以调⽤,与前⾯学的redis...原创 2019-11-13 10:48:25 · 304 阅读 · 0 评论 -
python操作mysql
一、引入模块在py文件中引入pymysql模块from pymysql import *二、Connection 对象用于建立与数据库的连接创建对象:调用connect()方法conn=connect(参数列表)参数host:连接的mysql主机,如果本机是’localhost’参数port:连接的mysql主机的端口,默认是3306参数database:数...原创 2019-11-12 18:03:47 · 108 阅读 · 0 评论 -
mysql练习
准备数据创建数据表-- 创建 "京东" 数据库create database jing_dong charset=utf8;-- 使用 "京东" 数据库use jing_dong;-- 创建一个商品goods数据表create table goods( id int unsigned primary key auto_increment not null, nam...原创 2019-11-12 17:10:16 · 366 阅读 · 0 评论 -
mysql 查询
数据的准备创建一个数据库create database python_test charset=utf8;使用一个数据库 use python_test;显示使用的当前数据是哪个? select database();创建一个数据表students表 create table students( id int unsigned primary key auto...原创 2019-11-12 11:50:51 · 91 阅读 · 0 评论 -
mysql 常用操作
数据库的操作-- 链接数据库 mysql -uroot -p mysql -uroot -pmysql-- 退出数据库 exit/quit/ctrl+d-- sql语句最后需要有分号;结尾-- 显示数据库版本 select version();-- 显示时间 select now();-- 查看所有数据库 show database...原创 2019-11-12 09:31:58 · 130 阅读 · 0 评论 -
Redis 【多数据库,事务,持久化】
1、数据库Redis 下,数据库是由一个整数索引标识,而不是由一个数据库名称,默认一个客户端连接到数据库0。redis.conf 配置文件中控制数据库总数database 16数据库的切换:select 数据库移动数据(将key移动到另一个库):move key 数据库名数据库清空:flushdb //清空当前库的keyflushall //清空所有Redis库...原创 2019-10-30 23:09:29 · 113 阅读 · 0 评论 -
Redis命令【List Set Zset】
Redis 支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)等···3、List 类型Redis列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素到列表的头部(左边)或者尾部(右边)一个列表最多可以包含 2^32 - 1 个元素 (4294967295, 每个列表超过40亿个元素)赋值:...原创 2019-10-30 19:45:31 · 219 阅读 · 0 评论 -
Redis命令 [ Key String Hash ]
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set):有序集合)下面介绍相关命令:0、 关于 key:redis 单个key 存入512M大小key 不要太长,尽量不要超过1024字节,这不仅消耗内存,而且会降低查找的效率;key 也不要太短,太短的话,key 的可读性会降低;在一个项目中,key 最...原创 2019-10-30 10:11:57 · 415 阅读 · 0 评论 -
Redis 配置
一、必须要修改:Redis配置默认必须修改:daemonize no 修改为 daemonize yesbind 127.0.01 注释掉requirepass 设置密码二、必须要知道:服务端启动:./bin/redis-server ./redis.conf本地客户端登录用redis-cli 密码登陆redis-cli -a password远程服务上执行命令:...原创 2019-10-30 04:04:28 · 249 阅读 · 0 评论