国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用 Python 獲取 Redis 數(shù)據(jù)庫(kù)中的所有鍵

這篇具有很好參考價(jià)值的文章主要介紹了使用 Python 獲取 Redis 數(shù)據(jù)庫(kù)中的所有鍵。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

如果你了解 JSON,就會(huì)熟悉 Redis 設(shè)計(jì)系統(tǒng)。 它使用鍵值結(jié)構(gòu)和分布式內(nèi)存方法來(lái)實(shí)現(xiàn)彈性數(shù)據(jù)庫(kù)。

哈希、列表、集合、排序集合、字符串、JSON 和流是 Redis 支持的眾多數(shù)據(jù)結(jié)構(gòu)之一。 這個(gè)開源數(shù)據(jù)庫(kù)支持不同的語(yǔ)言,包括 Python,如果您正在使用它開發(fā)后端系統(tǒng),一些模塊和包可以提供幫助。

您經(jīng)常對(duì)數(shù)據(jù)庫(kù)執(zhí)行的許多操作之一是檢索數(shù)據(jù),在像 Redis 這樣的數(shù)據(jù)庫(kù)中,鍵對(duì)于實(shí)現(xiàn)此類操作很重要。

本文將討論獲取 Redis 數(shù)據(jù)庫(kù)中的所有鍵。


使用 keys() 獲取 Redis 數(shù)據(jù)庫(kù)中的所有鍵

要使用 redis,我們需要安裝它; 您可以查看 Redis 下載頁(yè)面以了解操作方法。 對(duì)于 Linux 和 macOS 用戶來(lái)說(shuō),這要容易得多; 但是,對(duì)于 Windows 用戶,您可能必須使用適用于 Linux 的 Windows 子系統(tǒng) (WSL2),并且您可以按照他們的說(shuō)明視頻指南進(jìn)行操作。

假設(shè)您已經(jīng)設(shè)置了 Redis 數(shù)據(jù)庫(kù),我們將安裝 redis 包,它提供對(duì) Redis 數(shù)據(jù)庫(kù)的客戶端訪問(wèn)。 要安裝它,我們將使用 pip 命令。

pip install redis

輸出:

Collecting redis
  Downloading 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.3
  Downloading Deprecated-1.2.13-py2.py3-none-any.whl (9.6 kB)
Collecting async-timeout>=4.0.2
  Downloading async_timeout-4.0.2-py3-none-any.whl (5.8 kB)
Collecting packaging>=20.4
  Downloading 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.10
  Downloading wrapt-1.14.1-cp310-cp310-win_amd64.whl (35 kB)
Collecting pyparsing!=3.0.5,>=2.0.2
  Downloading 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、打包和不推薦使用的模塊來(lái)為其模塊提供支持。

要使用 redis 包,我們需要導(dǎo)入它。

import redis

進(jìn)入正題,我們可以使用redis模塊提供的keys()方法來(lái)訪問(wèn)并獲取其中的所有key。

key() 方法從給定的 Redis 數(shù)據(jù)庫(kù)返回一個(gè)與在其參數(shù)中傳遞的模式相匹配的鍵列表。 如果不傳遞任何參數(shù),則有一個(gè)默認(rèn)模式,即*,表示所有鍵。

為了展示工作中的方法,我們使用 +Key 按鈕或以下代碼手動(dòng)預(yù)填充了別名 Temp 和一些鍵的 redis 數(shù)據(jù)庫(kù)。

import redis

redisHost = 'localhost'
redisPort = 6379
redisDecodeRes = True

r = redis.StrictRedis(
            host=redisHost,
            port=redisPort,
            decode_responses=redisDecodeRes
        )

r.set("ConnectionPool", "Ox1212af34w3141")

上面的代碼導(dǎo)致鍵 ConnectionPool 被添加到具有相應(yīng)值的 Temp 數(shù)據(jù)庫(kù)中。

set() 方法將鍵值對(duì)應(yīng)用于數(shù)據(jù)庫(kù),而 StrictRedis() 方法創(chuàng)建一個(gè) Redis 連接對(duì)象,使我們能夠訪問(wèn)數(shù)據(jù)庫(kù)。

要通過(guò) GUI 顯示數(shù)據(jù)庫(kù)(使用別名 Temp)及其密鑰,我們可以使用 RedisInsight 應(yīng)用程序,如圖所示。

使用 Python 獲取 Redis 數(shù)據(jù)庫(kù)中的所有鍵,Python 實(shí)用技巧,編程,數(shù)據(jù)庫(kù),python,redis

手動(dòng)向數(shù)據(jù)庫(kù)中添加了 11 個(gè)密鑰以測(cè)試 key() 方法。

現(xiàn)在,對(duì)于 key() 方法,我們必須使用 StrictRedis() 方法創(chuàng)建一個(gè) Redis 連接對(duì)象來(lái)訪問(wèn)鍵。 host、port 和 decode_responses 參數(shù)被傳遞來(lái)定義連接的參數(shù)。

host 和 port 定義主機(jī)名和端口號(hào),decode_responses 定義將傳遞的數(shù)據(jù)解碼為我們可以輕松使用的 Python 字符串。 keys() 方法然后訪問(wèn)所有可用的鍵,因?yàn)闆](méi)有傳遞任何參數(shù)。

import redis

redisHost = 'localhost'
redisPort = 6379
redisDecodeRes = True

r = 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']

我們?cè)?Temp 數(shù)據(jù)庫(kù)中有一個(gè)所有鍵的列表,我們可以使用它。

如果我們有所需的鍵模式,我們可以將其作為參數(shù)傳遞。 讓我們列出所有以 bar 開頭的鍵。

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

輸出:

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

使用 scan_iter() 獲取 Redis 數(shù)據(jù)庫(kù)中的所有鍵

對(duì)于大型數(shù)據(jù)庫(kù),scan_iter() 允許我們?cè)?Python 應(yīng)用程序中更好地管理數(shù)據(jù)。 此外,key() 方法會(huì)阻塞服務(wù)器并阻止其他使用操作,而對(duì)于 scan_iter(),其基于批處理的操作允許其他使用操作。

盡管 keys() 可能更快,但它對(duì)于多個(gè)基于請(qǐng)求的系統(tǒng)來(lái)說(shuō)并不是很好。

現(xiàn)在,讓我們看看它的實(shí)際效果。

import redis

redisHost = 'localhost'
redisPort = 6379
redisDecodeRes = True

try:
    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

當(dāng)我們嘗試使用數(shù)據(jù)庫(kù)時(shí),使用 try/except 有助于處理連接問(wèn)題。 使用 StrictRedis() 連接后,我們使用 match 參數(shù)來(lái)定義我們正在尋找的鍵模式,并循環(huán)遍歷結(jié)果以給出鍵。


使用 zip_longest 獲取 Redis 數(shù)據(jù)庫(kù)中的所有鍵

正如我們所說(shuō),對(duì)于具有大量鍵的大型數(shù)據(jù)庫(kù),scan_iter() 方法更好,但我們可以通過(guò)按指定數(shù)量的批次檢索鍵來(lái)進(jìn)一步改進(jìn)它,以更好地管理結(jié)果。

要?jiǎng)?chuàng)建批處理,我們需要 itertools 模塊,它提供可用于不同情況的不同迭代器(或方法)。 在 itertools 模塊中,我們有 zip_longest 方法,它返回一個(gè) zip_longest 對(duì)象,其 .next() 方法返回一個(gè)元組并聚合傳遞給它的 iterable 中的元素。

我們可以使用 zip_longest() 方法創(chuàng)建一個(gè)函數(shù),該函數(shù)根據(jù)傳遞的參數(shù)創(chuàng)建一批指定數(shù)量的鍵。 比如我們創(chuàng)建一批2,可以用于很多情況。

import redis
from itertools import zip_longest

redisHost = 'localhost'
redisPort = 6379
redisDecodeRes = True

try:
    r = redis.StrictRedis(
        host=redisHost,
        port=redisPort,
        decode_responses=redisDecodeRes,
        db=0
    )

    def batch(iterable, num):
        initIter = [iter(iterable)] * num
        return zip_longest(*initIter)

    for keyBatch in batch(r.scan_iter('bar*'), 2):
        print(keyBatch)
except Exception as e:
    print(e)

輸出:文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-658012.html

('bar-three', 'bar-one')
('bar-two', 'bar')

到了這里,關(guān)于使用 Python 獲取 Redis 數(shù)據(jù)庫(kù)中的所有鍵的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MYSQL 查詢數(shù)據(jù)庫(kù)中所有表中的數(shù)據(jù)量

    SELECT TABLE_NAME, TABLE_ROWS? FROM INFORMATION_SCHEMA.TABLES? WHERE TABLE_SCHEMA = \\\'your_database_name\\\'; 將 your_database_name 替換為您實(shí)際使用的數(shù)據(jù)庫(kù)名稱。 執(zhí)行以上查詢語(yǔ)句后,將會(huì)獲取到 your_database_name 數(shù)據(jù)庫(kù)中所有表的數(shù)據(jù)量,其中 TABLE_NAME 列表示表名稱, TABLE_ROWS 列表示表中的數(shù)據(jù)量。

    2024年02月11日
    瀏覽(19)
  • 如何把Navicat中的數(shù)據(jù)庫(kù)中的所有表導(dǎo)出

    如何把Navicat中的數(shù)據(jù)庫(kù)中的所有表導(dǎo)出

    第一步 打開navicat 找到你想要導(dǎo)出表的數(shù)據(jù)庫(kù) 第二步 右擊該數(shù)據(jù)庫(kù),選擇 轉(zhuǎn)儲(chǔ)SQL文件 再選擇 結(jié)構(gòu)和數(shù)據(jù)… 保存到一個(gè)你知道的文件夾中,就ok了。 第三步 運(yùn)行那個(gè)生成的文件,就可生成之前數(shù)據(jù)庫(kù)中的所有表格了,通過(guò)記事本打開那個(gè)文件,復(fù)制所有的代碼。 第四步 在

    2024年02月07日
    瀏覽(24)
  • 第1章 獲取數(shù)據(jù)庫(kù)中的數(shù)據(jù)

    第1章 獲取數(shù)據(jù)庫(kù)中的數(shù)據(jù)

    ??? CoreShop源程序是以數(shù)據(jù)庫(kù)優(yōu)先進(jìn)行定義的,所以其本身不包含代碼優(yōu)先的定義,但本從更習(xí)慣于代碼優(yōu)先,所以為其定義了代碼優(yōu)先的定義。 1 CoreCms.Net.Model.Entities. SysRole using SqlSugar ; using System . ComponentModel . DataAnnotations ; namespace CoreCms . Net . Model . Entities { ? ? /// summary

    2024年02月15日
    瀏覽(16)
  • springboot+redis+mysql+quartz-通過(guò)Java操作redis的KEYS*命令獲取緩存數(shù)據(jù)定時(shí)更新數(shù)據(jù)庫(kù)

    代碼講解: 3-點(diǎn)贊功能-定時(shí)持久化到數(shù)據(jù)庫(kù)(pipeline+lua)-完善過(guò)程2_嗶哩嗶哩_bilibili https://www.bilibili.com/video/BV1w14y1o7BV 本文章代碼: blogLike_schedule/like03 · xin麒/XinQiUtilsOrDemo - 碼云 - 開源中國(guó) (gitee.com) https://gitee.com/flowers-bloom-is-the-sea/XinQiUtilsOrDemo/tree/master/blogLike_schedule/like03 數(shù)據(jù)

    2024年02月15日
    瀏覽(31)
  • 如何使用python實(shí)現(xiàn)簡(jiǎn)單爬取網(wǎng)頁(yè)數(shù)據(jù)并導(dǎo)入MySQL中的數(shù)據(jù)庫(kù)

    前言:要使用 Python 爬取網(wǎng)頁(yè)數(shù)據(jù)并將數(shù)據(jù)導(dǎo)入 MySQL 數(shù)據(jù)庫(kù),您需要使用 Requests 庫(kù)進(jìn)行網(wǎng)頁(yè)抓取,使用 BeautifulSoup 庫(kù)對(duì)抓取到的 HTML 進(jìn)行解析,并使用 PyMySQL 庫(kù)與 MySQL 進(jìn)行交互。 以下是一個(gè)簡(jiǎn)單的示例: 1. ?安裝所需庫(kù): ``` ``` 2. ?導(dǎo)入所需庫(kù): ``` ``` 3. ?建立數(shù)據(jù)庫(kù)連接:

    2024年02月04日
    瀏覽(23)
  • 分布式天梯圖算法在 Redis 圖數(shù)據(jù)庫(kù)中的應(yīng)用

    Redis是一個(gè)高性能的鍵值對(duì)數(shù)據(jù)庫(kù),支持常用的數(shù)據(jù)結(jié)構(gòu)和分布式操作,被廣泛應(yīng)用于緩存、消息隊(duì)列和排行榜等場(chǎng)景。除了基本的數(shù)據(jù)結(jié)構(gòu),Redis還支持圖數(shù)據(jù)結(jié)構(gòu)并提供了一些算法支持。 天梯圖算法是一種基于貪心的圖搜索算法,在尋找最短路徑問(wèn)題中具有很高的效率。

    2024年02月14日
    瀏覽(25)
  • 【postgresql 基礎(chǔ)入門】從了解數(shù)據(jù)庫(kù)訪問(wèn)權(quán)限,訪問(wèn)數(shù)據(jù)庫(kù),到認(rèn)識(shí)數(shù)據(jù)庫(kù)的所有者及屬性,從此打開了數(shù)據(jù)庫(kù)使用的大門

    ? 專欄內(nèi)容 : postgresql內(nèi)核源碼分析 手寫數(shù)據(jù)庫(kù)toadb 并發(fā)編程 ? 開源貢獻(xiàn) : toadb開源庫(kù) 個(gè)人主頁(yè) :我的主頁(yè) 管理社區(qū) :開源數(shù)據(jù)庫(kù) 座右銘:天行健,君子以自強(qiáng)不息;地勢(shì)坤,君子以厚德載物. 入門準(zhǔn)備 postgrersql基礎(chǔ)架構(gòu) 快速使用 初始化集群 數(shù)據(jù)庫(kù)服務(wù)管理 psql客戶

    2024年02月08日
    瀏覽(63)
  • Python 操作 Redis 數(shù)據(jù)庫(kù)介紹

    Redis 作為常用的 NoSql 數(shù)據(jù)庫(kù),主要用于緩存數(shù)據(jù),提高數(shù)據(jù)讀取效率,那在 Python 中應(yīng)該如果連接和操作 Redis 呢?今天就為大概簡(jiǎn)單介紹下,在 Python 中操作 Redis 常用命令。 首先還是需要先安裝 redis 模塊,使用如下命令: 安裝成功后就可以在代碼中導(dǎo)入模塊,然后通過(guò)創(chuàng)建

    2024年02月11日
    瀏覽(19)
  • 用bat 命令 修改sql文件中的數(shù)據(jù)庫(kù)名字 新的名字通過(guò)讀取配置文件中的字段獲取

    在批處理腳本中,如果新數(shù)據(jù)庫(kù)名存儲(chǔ)在配置文件(比如config.ini)中的某個(gè)字段內(nèi),可以按照以下步驟進(jìn)行: 假設(shè)你的配置文件內(nèi)容如下: 要讀取這個(gè)值并用于替換.sql文件中的舊數(shù)據(jù)庫(kù)名,請(qǐng)使用以下批處理腳本: 在這個(gè)腳本中,首先通過(guò) findstr 和 for /f 命令組合讀取配置

    2024年02月02日
    瀏覽(24)
  • 【C++】開源:Redis數(shù)據(jù)庫(kù)配置與使用

    【C++】開源:Redis數(shù)據(jù)庫(kù)配置與使用

    ?? ★,° :.☆( ̄▽ ̄)/$: .°★ ?? 這篇文章主要介紹Redis數(shù)據(jù)庫(kù)配置與使用。 無(wú)專精則不能成,無(wú)涉獵則不能通。?!?jiǎn)⒊?歡迎來(lái)到我的博客,一起學(xué)習(xí),共同進(jìn)步。 喜歡的朋友可以關(guān)注一下,下次更新不迷路?? 項(xiàng)目Github地址: https://github.com/redis/redis Redis(Remote Dict

    2024年02月15日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包