当前位置: 首页 > news >正文

做vip兼职设计师的网站有哪些广州网络营销公司

做vip兼职设计师的网站有哪些,广州网络营销公司,wordpress主题 移动,太原市万柏林区疫情防控如果你了解 JSON,就会熟悉 Redis 设计系统。 它使用键值结构和分布式内存方法来实现弹性数据库。 哈希、列表、集合、排序集合、字符串、JSON 和流是 Redis 支持的众多数据结构之一。 这个开源数据库支持不同的语言,包括 Python,如果您正在使…

如果你了解 JSON,就会熟悉 Redis 设计系统。 它使用键值结构和分布式内存方法来实现弹性数据库。

哈希、列表、集合、排序集合、字符串、JSON 和流是 Redis 支持的众多数据结构之一。 这个开源数据库支持不同的语言,包括 Python,如果您正在使用它开发后端系统,一些模块和包可以提供帮助。

您经常对数据库执行的许多操作之一是检索数据,在像 Redis 这样的数据库中,键对于实现此类操作很重要。

本文将讨论获取 Redis 数据库中的所有键。


使用 keys() 获取 Redis 数据库中的所有键

要使用 redis,我们需要安装它; 您可以查看 Redis 下载页面以了解操作方法。 对于 Linux 和 macOS 用户来说,这要容易得多; 但是,对于 Windows 用户,您可能必须使用适用于 Linux 的 Windows 子系统 (WSL2),并且您可以按照他们的说明视频指南进行操作。

假设您已经设置了 Redis 数据库,我们将安装 redis 包,它提供对 Redis 数据库的客户端访问。 要安装它,我们将使用 pip 命令。

pip install redis

输出:

Collecting redisDownloading redis-4.3.4-py3-none-any.whl (246 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 246.2/246.2 kB 794.4 kB/s eta 0:00:00
Collecting deprecated>=1.2.3Downloading Deprecated-1.2.13-py2.py3-none-any.whl (9.6 kB)
Collecting async-timeout>=4.0.2Downloading async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
Collecting packaging>=20.4Downloading packaging-21.3-py3-none-any.whl (40 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 40.8/40.8 kB 1.9 MB/s eta 0:00:00
Collecting wrapt<2,>=1.10Downloading wrapt-1.14.1-cp310-cp310-win_amd64.whl (35 kB)
Collecting pyparsing!=3.0.5,>=2.0.2Downloading pyparsing-3.0.9-py3-none-any.whl (98 kB)━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 98.3/98.3 kB 624.8 kB/s eta 0:00:00
Installing collected packages: wrapt, pyparsing, async-timeout, packaging, deprecated, redis
Successfully installed async-timeout-4.0.2 deprecated-1.2.13 packaging-21.3 pyparsing-3.0.9 redis-4.3.4 wrapt-1.14.1

因此,redis 包使用 wrapt、pyparsing、async-timeout、打包和不推荐使用的模块来为其模块提供支持。

要使用 redis 包,我们需要导入它。

import redis

进入正题,我们可以使用redis模块提供的keys()方法来访问并获取其中的所有key。

key() 方法从给定的 Redis 数据库返回一个与在其参数中传递的模式相匹配的键列表。 如果不传递任何参数,则有一个默认模式,即*,表示所有键。

为了展示工作中的方法,我们使用 +Key 按钮或以下代码手动预填充了别名 Temp 和一些键的 redis 数据库。

import redisredisHost = 'localhost'
redisPort = 6379
redisDecodeRes = Truer = redis.StrictRedis(host=redisHost,port=redisPort,decode_responses=redisDecodeRes)r.set("ConnectionPool", "Ox1212af34w3141")

上面的代码导致键 ConnectionPool 被添加到具有相应值的 Temp 数据库中。

set() 方法将键值对应用于数据库,而 StrictRedis() 方法创建一个 Redis 连接对象,使我们能够访问数据库。

要通过 GUI 显示数据库(使用别名 Temp)及其密钥,我们可以使用 RedisInsight 应用程序,如图所示。

RedisInsight

手动向数据库中添加了 11 个密钥以测试 key() 方法。

现在,对于 key() 方法,我们必须使用 StrictRedis() 方法创建一个 Redis 连接对象来访问键。 host、port 和 decode_responses 参数被传递来定义连接的参数。

host 和 port 定义主机名和端口号,decode_responses 定义将传递的数据解码为我们可以轻松使用的 Python 字符串。 keys() 方法然后访问所有可用的键,因为没有传递任何参数。

import redisredisHost = 'localhost'
redisPort = 6379
redisDecodeRes = Truer = redis.StrictRedis(host=redisHost,port=redisPort,decode_responses=redisDecodeRes,db=0)print(r.keys())

输出:

['bar-two', 'information', 'bar-one', 'details', 'foo', 'jinku', 'bar', 'User-One', 'delft', 'bar-three', 'ConnectionPool']

我们在 Temp 数据库中有一个所有键的列表,我们可以使用它。

如果我们有所需的键模式,我们可以将其作为参数传递。 让我们列出所有以 bar 开头的键。

print(r.keys(pattern="bar*"))

输出:

['bar-two', 'bar-one', 'bar', 'bar-three']

使用 scan_iter() 获取 Redis 数据库中的所有键

对于大型数据库,scan_iter() 允许我们在 Python 应用程序中更好地管理数据。 此外,key() 方法会阻塞服务器并阻止其他使用操作,而对于 scan_iter(),其基于批处理的操作允许其他使用操作。

尽管 keys() 可能更快,但它对于多个基于请求的系统来说并不是很好。

现在,让我们看看它的实际效果。

import redisredisHost = 'localhost'
redisPort = 6379
redisDecodeRes = Truetry:r = redis.StrictRedis(host=redisHost,port=redisPort,decode_responses=redisDecodeRes,db=0)for key in r.scan_iter(match="bar*"):print(key)
except Exception as e:print(e)

输出:

bar-three
bar-one
bar-two
bar

当我们尝试使用数据库时,使用 try/except 有助于处理连接问题。 使用 StrictRedis() 连接后,我们使用 match 参数来定义我们正在寻找的键模式,并循环遍历结果以给出键。


使用 zip_longest 获取 Redis 数据库中的所有键

正如我们所说,对于具有大量键的大型数据库,scan_iter() 方法更好,但我们可以通过按指定数量的批次检索键来进一步改进它,以更好地管理结果。

要创建批处理,我们需要 itertools 模块,它提供可用于不同情况的不同迭代器(或方法)。 在 itertools 模块中,我们有 zip_longest 方法,它返回一个 zip_longest 对象,其 .next() 方法返回一个元组并聚合传递给它的 iterable 中的元素。

我们可以使用 zip_longest() 方法创建一个函数,该函数根据传递的参数创建一批指定数量的键。 比如我们创建一批2,可以用于很多情况。

import redis
from itertools import zip_longestredisHost = 'localhost'
redisPort = 6379
redisDecodeRes = Truetry:r = redis.StrictRedis(host=redisHost,port=redisPort,decode_responses=redisDecodeRes,db=0)def batch(iterable, num):initIter = [iter(iterable)] * numreturn zip_longest(*initIter)for keyBatch in batch(r.scan_iter('bar*'), 2):print(keyBatch)
except Exception as e:print(e)

输出:

('bar-three', 'bar-one')
('bar-two', 'bar')
http://www.hengruixuexiao.com/news/5252.html

相关文章:

  • 建设项目信息查询seo zac
  • 手机移动网络屏蔽的网站正规手游代理平台有哪些
  • 企业网站建设排名西安百度推广排名
  • 麻涌企业网站建设百度seo排名软
  • 网站免费推广怎么做百度竞价排名软件
  • 网站收录 作用友情链接购买平台
  • 海口 网站开发做运营的具体做什么
  • 网站小logo设计黄页88推广多少钱一年
  • 陕西政务服务网注册公司流程搜索引擎优化核心
  • 深圳手机建网站做竞价推广大概多少钱
  • 郑州网站优化岳阳seo公司
  • 专业模板网站制作哪家好个人免费网站创建入口
  • 武汉做网站网络公司广州百度提升优化
  • 平面设计网站免费大推荐广州推广seo
  • 网站设置为应用程序网站设计的流程
  • 接收新网站如何做诊断免费建站网站
  • 网站建设佰首选金手指十八竞价广告是什么意思
  • 网站开发维护报价单今日国家新闻
  • 个人做搜索网站违法吗南京高端品牌网站建设
  • wordpress 100并发网站站外优化推广方式
  • 济南简单的网站制作十大互联网平台
  • 做网站如何自动采集图片上海seo外包公司
  • 胶州网站建设哪里有优化算法
  • 毕业做网站运营好吗上海aso
  • dede大气黑色网站源码百度关键词优化词精灵
  • 网站建设的英文翻译凡科建站官网登录
  • 视频网站亏损也做手机清理优化软件排名
  • 高埗做网站公司网络推广项目计划书
  • 曙光建设有限公司网站百度推广怎么推
  • 邢台医院网站建设seo常见的优化技术