一、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/① 点击DOWNLOADS② 向下翻,https://blog.csdn/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/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内存数据库:用于存储变化快的数据,主要存储新闻动态画像数据(即用户对新闻的行为数据)、热门页列表数据、推荐页列表数据、用户曝光表、新闻详情信息
参考资料:我的组队学习-Task02 数据库的基本使用
更多推荐
推荐系统-Task02数据库基本使用
发布评论