python读取redis存储数据的存储时间_Python 抓取数据存储到Redis中的操作

redis是一个key-value存储结构。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set 有序集合)和hash(哈希类型),数据存储如下图分析

16229af8f4775c8d9a6a46070ee7927d.png

为了分别为ID存入多个键值对,此次仅对Hash数据进行操作,例子如下

import os,sys

import requests

import bs4

import redis

#连接Redis

r = redis.Redis(host="127.0.0.1",password="123456",port=6379)

html = "https://www.dongmanmanhua.cn/dailySchedule?weekday=MONDAY"

result = requests.get(html)

texts = result.text

data = bs4.BeautifulSoup(texts,"html.parser");

lidata = data.select("div#dailyList ul.daily_card li")

#print(lidata)

for x in lidata:

did = x.get("data-title-no")

name = x.select("p.subj")

name1 = name[0].get_text()

url = x.a.get("href")

story = x.a.p

story1 = story.string

user = x.select("p.author")

user1 = user[0].get_text()

like = x.select("em.grade_num")

like1 = like[0].get_text()

rt = {"did":did,"name":name1,"url":url,"story":story1,"user":user1,"like":like1}

#写数据到Redis

idkey = "name"+did

#hash表数据写入命令hmget,可以一次写入多个键值对

r.hmget(idkey,rt)

#写入命令hset,一次只能写入一个键值对

r.hset(idkey,"did",did)

r.hset(idkey,"name",name1)

r.hset(idkey,"story",story1)

r.hset(idkey,"url",url)

r.hset(idkey,"user",user1)

r.hset(idkey,"like",like1)

print("dman哈希表写入成功")

print(r.hget(idkey,"did"))

print(r.hget(idkey,"name"))

Hash 类其他常用操作

hset(name,key,value) :name对应的hash中设置一个键值对,当name对应的hash中不存在当前key则创建(相当于添加) ,否则做更改操作

hget(name,key) : 在name对应的hash中获取根据key获取value

hmset(name,mapping) :在name对应的hash中批量设置键值对 ,mapping:例 {"k1":"v1","k2":"v2"}

hmget(name,keys,*args) :在name对应的hash中获取多个key的值 ,keys:要获取key的集合,例 ["k1","k2"];*args:要获取的key,如:k1,k2,k3

hgetall(name):获取name对应hash的所有键值

hlen(name):获取name对应的hash中键值的个数

hkeys(name):获取name对应的hash中所有的key的值

hvals(name):获取name对应的hash中所有的value的值

hexists(name,key):检查name对应的hash是否存在当前传入的key

hdel(name,*keys):将name对应的hash中指定key的键值对删除

补充知识:将python数据存入redis中,键取字符串类型

使用redis中的字符串类型键来存储一个python的字典。首先需要使用json模块的dumps方法将python字典转换为字符串,然后存入redis,从redis中取出来必须使用json.loads方法转换为python的字典(其他python数据结构处理方式也一样)。

如果不使用json.loads方法转换则会发现从redis中取出的数据的数据类型是bytes.

d8ee9d19346b54dc7376b481ff8854c0.png

当使用的python数据结构是列表时:

3885f86cd88a14e139a77b25b1330506.png

以上这篇Python 抓取数据存储到Redis中的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持云海天教程。

原文链接:https://www.cnblogs.com/lovele-/p/9800202.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值