推荐系统-Task02数据库基本使用

Posted GoAl的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐系统-Task02数据库基本使用相关的知识,希望对你有一定的参考价值。

一、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
  • 根据偏移量offsetvalue覆盖字符串值: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 ...]
  • 返回列表中指定区间内的元素(闭区间),区间以偏移量startend指定:lrange key start end
  • 返回列表key里索引index位置存储的元素:lindex key index
  • 用于返回存储在key中的列表长度:llen key
  • 从列表key中删除前count个值等于element的元素:lrem key count value
  • 设置列表keyindex位置的元素值为elementlset key index value
  • element插入到列表key的前面或后面:linsert key before|after pivot value

哈希表操作

  • 将存储在key中的哈希表的field字段赋值valuehset 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数据库基本使用的主要内容,如果未能解决你的问题,请参考以下文章

推荐系统-Task05推荐系统流程构建

推荐系统-Task04前后端基础及交互

推荐系统-Task04前后端基础及交互

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题

推荐系统实战task01笔记(赛题理解+baseline)