推荐系统-Task02数据库基本使用
Posted GoAl的博客
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了推荐系统-Task02数据库基本使用相关的知识,希望对你有一定的参考价值。
一、mysql数据库
Mysql安装参考:
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 对象。字段值可以包含其他文档,数组及文档数组。
三、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数据库基本使用的主要内容,如果未能解决你的问题,请参考以下文章
Swift新async/await并发中利用Task防止指定代码片段执行的数据竞争(Data Race)问题