国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術|

服務器之家 - 數(shù)據(jù)庫 - Redis - Redis中Scan命令的基本使用教程

Redis中Scan命令的基本使用教程

2019-11-24 18:55daisy Redis

這篇文章主要給大家介紹了關于Redis中Scan命令的基本使用教程,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Redis具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

前言

Redis中有一個經(jīng)典的問題,在巨大的數(shù)據(jù)量的情況下,做類似于查找符合某種規(guī)則的Key的信息,這里就有兩種方式,
一是keys命令,簡單粗暴,由于Redis單線程這一特性,keys命令是以阻塞的方式執(zhí)行的,keys是以遍歷的方式實現(xiàn)的復雜度是 O(n),Redis庫中的key越多,查找實現(xiàn)代價越大,產(chǎn)生的阻塞時間越長。

二是scan命令,以非阻塞的方式實現(xiàn)key值的查找,絕大多數(shù)情況下是可以替代keys命令的,可選性更強

以下寫入100000條key***:value***格式的測試數(shù)據(jù)(ps:用pipline的話,1w一筆,每一筆在秒級完成)

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# -*- coding: utf-8 -*-
# !/usr/bin/env python3
import redis
import sys
import datetime
 
def create_testdata():
 r = redis.StrictRedis(host='***.***.***.***', port=****, db=0, password='root')
 counter = 0
 with r.pipeline(transaction=False) as p:
 for i in range(0, 100000):
  p.set('key' + str(i), "value" + str(i))
  counter = counter + 1
  if (counter == 10000):
  p.execute()
  counter = 0
  print("set by pipline loop")
 
if __name__ == "__main__":
 create_testdata()

比如這里查詢key111開頭的key有哪些?

若使用keys命令,則執(zhí)行keys key1111*,一次性全部查出來。

Redis中Scan命令的基本使用教程

同樣,如果使用scan命令,則用scan 0 match key1111* count 20

Redis中Scan命令的基本使用教程

scan的語法為:SCAN cursor [MATCH pattern] [COUNT count]The default COUNT value is 10.

SCAN命令是一個基于游標的迭代器。這意味著命令每次被調用都需要使用上一次這個調用返回的游標作為該次調用的游標參數(shù),以此來延續(xù)之前的迭代過程。

這里使用scan 0 match key1111* count 20命令來完成這個查詢,稍顯意外的是,使用一開始都沒有查詢到結果,這個要從scan命令的原理來看。

scan在遍歷key的時候,0就代表第一次,key1111*代表按照key1111開頭的模式匹配,count 20中的20并不是代表輸出符合條件的key,而是限定服務器單次遍歷的字典槽位數(shù)量(約等于)。

那么,什么又叫做槽的數(shù)據(jù)?這個槽是不是Redis集群中的slot?答案是否定的。其實上圖已經(jīng)給出了答案了。

如果上面說的“字典槽”的數(shù)量是集群中的slot,又知道集群中的slot數(shù)量是16384,那么遍歷16384個槽之后,必然能遍歷出來所有的key信息,上面清楚地看到,當遍歷的字典槽的數(shù)量20000的時候,游標依舊沒有走完遍歷結果,因此這個字典槽并不等于集群中的slot的概念。

經(jīng)過測試,在scan的時候,究竟遍歷多大的COUNT值能完全match到符合條件的key,跟具體對象的key的個數(shù)有關,
如果以超過key個數(shù)的count來scan,必定會一次性就查找到所有符合條件的key,比如在key個數(shù)為10W個的情況下,一次遍歷20w個字典槽,肯定能完全遍歷出來結果。

Redis中Scan命令的基本使用教程

scan 指令是一系列指令,除了可以遍歷所有的 key 之外,還可以對指定的容器集合進行遍歷。

zscan 遍歷 zset 集合元素,

hscan 遍歷 hash 字典的元素、

sscan 遍歷 set 集合的元素。

SSCAN 命令、 HSCAN 命令和 ZSCAN 命令的第一個參數(shù)總是一個數(shù)據(jù)庫鍵(某個指定的key)。

另外,使用redis desktop manager的時候,當刷新某個庫的時候,控制臺自動不斷刷新scan命令,也就知道它在干嘛了

Redis中Scan命令的基本使用教程

參考:http://jinguoxing.github.io/redis/2018/09/04/redis-scan/

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對服務器之家的支持。

原文鏈接:https://www.cnblogs.com/wy123/p/10955153.html

延伸 · 閱讀

精彩推薦
  • Redisredis 交集、并集、差集的具體使用

    redis 交集、并集、差集的具體使用

    這篇文章主要介紹了redis 交集、并集、差集的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友...

    xiaojin21cen10152021-07-27
  • RedisRedis如何實現(xiàn)數(shù)據(jù)庫讀寫分離詳解

    Redis如何實現(xiàn)數(shù)據(jù)庫讀寫分離詳解

    Redis的主從架構,能幫助我們實現(xiàn)讀多,寫少的情況,下面這篇文章主要給大家介紹了關于Redis如何實現(xiàn)數(shù)據(jù)庫讀寫分離的相關資料,文中通過示例代碼介紹...

    羅兵漂流記6092019-11-11
  • Redisredis實現(xiàn)排行榜功能

    redis實現(xiàn)排行榜功能

    排行榜在很多地方都能使用到,redis的zset可以很方便地用來實現(xiàn)排行榜功能,本文就來簡單的介紹一下如何使用,具有一定的參考價值,感興趣的小伙伴們...

    乘月歸5022021-08-05
  • RedisRedis的配置、啟動、操作和關閉方法

    Redis的配置、啟動、操作和關閉方法

    今天小編就為大家分享一篇Redis的配置、啟動、操作和關閉方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    大道化簡5312019-11-14
  • RedisRedis全量復制與部分復制示例詳解

    Redis全量復制與部分復制示例詳解

    這篇文章主要給大家介紹了關于Redis全量復制與部分復制的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Redis爬蟲具有一定的參考學習...

    豆子先生5052019-11-27
  • Redisredis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    redis中如何使用lua腳本讓你的靈活性提高5個逼格詳解

    這篇文章主要給大家介紹了關于redis中如何使用lua腳本讓你的靈活性提高5個逼格的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具...

    一線碼農(nóng)5812019-11-18
  • RedisRedis 事務知識點相關總結

    Redis 事務知識點相關總結

    這篇文章主要介紹了Redis 事務相關總結,幫助大家更好的理解和學習使用Redis,感興趣的朋友可以了解下...

    AsiaYe8232021-07-28
  • Redis詳解Redis復制原理

    詳解Redis復制原理

    與大多數(shù)db一樣,Redis也提供了復制機制,以滿足故障恢復和負載均衡等需求。復制也是Redis高可用的基礎,哨兵和集群都是建立在復制基礎上實現(xiàn)高可用的...

    李留廣10222021-08-09
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 成人在线精品视频 | 国产免费天天看高清影视在线 | 亚洲一区二区三区在线 | 午夜影院免费看 | 激情久久网 | 农村末发育av片四区五区 | 毛片首页 | av在线成人| 亚洲一区二区三区免费观看 | 91精品国产乱码久 | 自拍偷拍小视频 | 精品成人影院 | 亚洲精品福利 | 99久久婷婷国产综合精品电影 | 国产综合久久久 | 一级录像免费录像在线观看 | 欧美激情一区二区三级高清视频 | 国产成人一区 | 999在线观看视频 | 久久99精品国产麻豆宅宅 | 成人免费在线电影 | 91.成人天堂一区 | 亚洲国产欧美日韩 | 一级黄色大片在线观看 | 91精品国产成人 | 国产精品福利在线 | 操操操小说 | 久久亚洲国产精品 | 国产视频三区 | 日韩国产欧美视频 | 久久国| 日韩成人在线视频 | 久久久亚洲综合 | 亚洲视频在线免费观看 | 成人免费一区二区三区视频网站 | 成人3d动漫一区二区三区91 | 国产片在线观看 | 黄色免费观看网址 | 国产精品美女久久久久久久久久久 | 色婷婷网 | 亚洲一区二区三区在线免费观看 |