一、Mysql数据库
Mysql安装参考:
最新版MySQL 8.0.22(Windows 64位)下载安装详细方法_AStackhouze的博客-CSDN博客 最新版MySQL 8.0.22(Windows 64-bit)下载安装详细方法前言一、MySQL 8.0.22官网下载二、设置环境变量三、创建初始化文件mysql.ini三、对MySQL进行初始化总结前言前几天下载安装了最新版的MySQL 8.0.22,遇到了不少问题,参考了一些方法,最终得以解决。今天将自己的安装过程记录下来,希望对各位有所帮助。一、MySQL 8.0.22官网下载点击进入MySQL官网:https://www.mysql.com/① 点击DOWNLOADS② 向下翻, https://blog.csdn.net/qq_44040327/article/details/110420405
基础理论知识可参考我的这篇:
Mysql_GoAl的博客-CSDN博客 一、为什么用自增列作为主键1、如果我们定义了主键(PRIMARY KEY),那么InnoDB会选择主键作为聚集索引。如果没有显式定义主键,则InnoDB会选择第一个不包含有NULL值的唯一索引作为主键索引。如果也没有这样的唯一索引,则InnoDB会选择内置6字节长的ROWID作为隐含的聚集索引(ROWID随着行记录的写入而主键递增,这个ROWID不像ORACLE的ROWID那样可引用,是隐含的)。2、数据记录本身被存于主索引(一颗B+Tree)的叶子节点上,这就要求同一个叶子节点内(大小为一 https://blog.csdn.net/qq_36816848/article/details/113107552
Pymysql
使用pymsql库可以实现python直接连接mysql数据库,进行数据增删改查操作。
连接数据库
import pymysql # 这里登陆到我之前创建的admin账户 db = pymysql.connect( host='localhost', user='root', password='123456', database='shop', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor ) Copy to clipboardErrorCopied
创建游标,可指定游标的类型(Cursor:元组类型,DictCursor:字典类型,SSCursor:无缓冲元组类型,SSDictCursor:无缓冲字典类型)
# 创建游标 cursor = db.cursor() 更详细操作可参考:mysql之pymsql的使用 - dawn-liu - 博客园
二、Mongodb
MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。
在高负载的情况下,添加更多的节点,可以保证服务器性能。
MongoDB 旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 将数据存储为一个文档,数据结构由键值(key=>value)对组成。MongoDB 文档类似于 JSON 对象。字段值可以包含其他文档,数组及文档数组。
相关学习资料:MongoDB 教程 | 菜鸟教程
三、Redis数据库
数据库的基本操作
切换库:select index,默认16个库(0~15)
删除库的数据:flushdb
删除所有库数据:flushall
查看key的个数:dbsize
Key的操作
查找符合模板的Key:key pattern
查找存在key的数量:exists key or [key...]
设置过期时间:expire key seconds
查看key的类型:type key
删除key:del key or [key...]
字符串操作
设置key:SET key value [EX seconds] [PX milliseconds] [NX|XX]
返回与key相关的字符串值:get key
追加字符串值:append key_name new_value
自增:incr key_name
自减:decr key_name
返回字符串值得长度:strlen key_name
根据偏移量offset用value覆盖字符串值:setrang key offset value
返回字符串的字串:getrang key start end
设置多个key-value:mset key value [key value ...]
返回多个指定key的value:mget key [key ...]
列表操作
一个或多个值插入到列表key 的头部:lpush key value [value ...]
向key中的列表尾部插入指定的值:rpush key value [value ...]
返回列表中指定区间内的元素(闭区间),区间以偏移量start和end指定:lrange key start end
返回列表key里索引index位置存储的元素:lindex key index
用于返回存储在key中的列表长度:llen key
从列表key中删除前count个值等于element的元素:lrem key count value
设置列表key中index位置的元素值为element:lset key index value
将element插入到列表key的前面或后面:linsert key before|after pivot value
哈希表操作
将存储在key中的哈希表的field字段赋值value:hset key field value
返回哈希表中指定字段field的值:hget key field
将多个field-value设置到哈希表中:hmset key field value [field value ...]
返回存储在key中的哈希表中所有的字段和值:getall key
删除哈希表 key 中的一个或多个指定字段:hdel key field [field ...]
查看哈希表的指定字段field是否存在:hexists key field
返回存储在key中哈希表的所有字段:hkeys key
返回哈希表所有字段field的值:hvals key
集合操作
将一个或多个成员元素加入到集合中:sadd key member [member ...]
返回存储在key中集合的所有成员:smembers key
判断元素member是否集合key的成员:sismember key member
返回集合中元素的数量:scard key
在集合中删除指定的元素:srem key member [member ...]
返回含有 count 个不同的元素的数组:srandmember key [count]
从集合key中删除并返回一个或多个随机元素:spop key [count]
项目数据库总结:
MySQL数据库:用于存储结构化数据,包括用户信息和用户阅读日志
MongoDB数据库:用于存储爬取到的新浪新闻数据,以及画像数据(用户画像、新闻特征画像、备份前端展示的新闻画像)
Redis内存数据库:用于存储变化快的数据,主要存储新闻动态画像数据(即用户对新闻的行为数据)、热门页列表数据、推荐页列表数据、用户曝光表、新闻详情信息