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

医药网站建设中图片百度销售岗位怎么样

医药网站建设中图片,百度销售岗位怎么样,网站建设一般好久到期,传奇页游排行榜目录 SCAN 介绍 SCAN 命令基本用法 MATCH 选项用法 COUNT 选项用法 TYPE 选项用法 补充 并发执行多个迭代 中途停止迭代 使用错误的游标进行增量式迭代 迭代终结的保证 SCAN 介绍 SCAN cursor [MATCH pattern] [COUNT count][TYPE type]:SCAN 命令及其相…

目录

SCAN 介绍

SCAN 命令基本用法

MATCH 选项用法

COUNT 选项用法

TYPE 选项用法

补充

并发执行多个迭代

中途停止迭代

使用错误的游标进行增量式迭代

迭代终结的保证


SCAN 介绍

SCAN cursor [MATCH pattern] [COUNT count][TYPE type]:SCAN 命令及其相关的 SSCAN 命令、 HSCAN 命令和 ZSCAN 命令都用于增量地迭代(incrementally iterate)一集元素(a collection of elements)

  • MATCH选项:可以通过提供一个 glob 风格的模式参数, 让命令只返回和给定模式相匹配的元素
  • COUNT选项:增量式迭代命令不保证每次迭代所返回的元素数量, 但我们可以使用 COUNT 选项, 对命令的行为进行一定程度上的调整返回最大数量
  • TYPE选项:迭代列出指定的数据类型的元素

增量式迭代命令:

  • SCAN 命令用于迭代当前数据库中的数据库键。
  • SSCAN 命令用于迭代集合键中的元素。
  • HSCAN 命令用于迭代哈希键中的键值对。
  • ZSCAN 命令用于迭代有序集合中的元素(包括元素成员和元素分值)

以上命令每次执行均返回少量元素,而不像keys或smembers命令被用于处理大量数据是极有可能导致阻塞服务器。

SCAN 命令基本用法

SCAN 0:SCAN 命令是一个基于游标的迭代器: SCAN 命令每次被调用之后, 都会向用户返回一个新的游标, 用户在下次迭代时需要使用这个新游标作为 SCAN 命令的游标参数, 以此来延续之前的迭代过程

  • 当 SCAN 命令的游标参数被设置为 0 时, 服务器将开始一次新的迭代, 而当服务器向用户返回值为 0 的游标时, 表示迭代已结束
127.0.0.1:6379> mset a 1 b 1 c 1 d 1 e 1 f 1 g 1 h 1 i 1 j 1 k 1 l 1 m 1 n 1 o 1 p 1 q 1 r 1 s 1 t 1 u 1 v 1 w 1 x 1 y 1 z 1 # 初始化键值对
OK
127.0.0.1:6379> scan 0
1) "1"                    # 返回下次换代的新游标
2)  1) "b"2) "t"3) "m"4) "q"5) "e"6) "u"7) "g"8) "w"9) "h"10) "s"
127.0.0.1:6379> scan 1
1) "27"                   # 返回下次换代的新游标
2)  1) "z"2) "c"4) "l"5) "y"6) "d"7) "a"8) "i"9) "k"10) "o"
127.0.0.1:6379> scan 27
1) "0"                    # 返回0表示迭代结束
2) 1) "v"3) "x"4) "j"5) "p"6) "f"7) "n"8) "r"

  • 在上面这个例子中, 第一次迭代使用 0 作为游标, 表示开始一次新的迭代
  • 第二次迭代使用的是第一次迭代时返回的游标, 也即是命令回复第一个元素的值 1
  • 第三次迭代使用的是第一次迭代时返回的游标, 也即是命令回复第一个元素的值 27
  • 第三次迭代返回第一个元素为0 ,表示迭代已结束。

返回:

  • 反复执行scan命令同一个元素可能会被返回多次
  • 返回的元素个数最多可能会返回数十个元素
  • 返回两个元素的数组:第一个数组元素是用于进行下一次迭代的新游标;第二个是数组是包含了所有被迭代的元素
  • 返回0:表示迭代已经结束, 整个数据集已经被完整遍历过了
  • 从上操作可知:迭代命令并不保证每次执行都返回某个给定数量的元素
    • 甚至可能会返回零个元素, 但只要命令返回的游标不是 0 , 应用程序就不应该将迭代视作结束

MATCH 选项用法

SCAN cursor MATCH pattern:通过提供一个 glob 风格的模式参数, 让命令只返回和给定模式相匹配的元素, 这一点可以通过在执行增量式迭代命令时, 通过给定 MATCH <pattern> 参数来实现。

127.0.0.1:6379> mset a00 1 a001 1 a002 1 a003 1 a014 1 a015 1 a016 1
OK
127.0.0.1:6379> keys *
1) "a001"
2) "a01"
3) "a003"
4) "a014"
5) "a016"
6) "a015"
7) "a002"
8) "a00"
127.0.0.1:6379> scan 0 match *01  # 匹配01结尾的key
1) "0"
2) 1) "a001"2) "a01"
127.0.0.1:6379> scan 0 match a01* # 匹配a01开头的key
1) "0"
2) 1) "a016"2) "a015"3) "a01"4) "a014"

说明:

  • 命令第一步是先执行 scan cursor取出元素列表
  • 命令第二步才执行match操作
  • 所以返回值第二个数组有可能是空的

COUNT 选项用法

SCAN cursor COUNT count:增量式迭代命令不保证每次迭代所返回的元素数量, 但我们可以使用 COUNT 选项, 对命令的行为进行一定程度上的调整

  • 不使用count的情况下,COUNT 参数的默认值为 10
  • 该选项告知迭代命令, 在这次迭代中应该从数据集里返回多少元素
127.0.0.1:6379> mset a0111 1 a0121 1 a0031 1 a0041 1 a0051 1 a0061 1 a0071 1 a0081 1 a0011 1 a0101 1 a0111 1 a0121 1 a0131 1
OK
127.0.0.1:6379> mset a001 1 a002 1 a003 1 a004 1 a005 1 a006 1 a007 1 a008 1 a001 1 a010 1 a011 1 a012 1 a013 1
OK
127.0.0.1:6379> scan 0 count 5
1) "4"
2) 1) "a005"2) "a0041"3) "a0121"4) "a0031"5) "a004"
  • 在迭代一个足够大的集合键时, 如果用户没有使用 MATCH 选项, 那么命令返回的元素数量通常和 COUNT 选项指定的一样, 或者比 COUNT 选项指定的数量稍多一些
127.0.0.1:6379> scan 0 count 5
1) "6"
2) 1) "a22"         # count 5 返回了5个2) "a016"3) "a25"4) "a26"5) "a015"
127.0.0.1:6379> scan 0 count 8
1) "9"
2)  1) "a22"        # count 8 返回了10个2) "a016"3) "a25"4) "a26"5) "a015"6) "a21"7) "a001"8) "a01"9) "a003"10) "a014"
  • 在迭代一个编码为整数集合(intset,一个只由整数值构成的小集合)、 或者编码为压缩列表(ziplist,由不同值构成的一个小哈希或者一个小有序集合)时, 增量式迭代命令通常会无视 COUNT 选项指定的值
127.0.0.1:6379> flushdb
OK
127.0.0.1:6379> mset a001 1 a002 1 a003 1 a004 1 a005 1 a006 1 a007 1 a008 1 a001 1 a010 1 a011 1 a012 1 a013 1
127.0.0.1:6379> mset a0111 1 a0121 1 a0031 1 a0041 1 a0051 1 a0061 1 a0071 1 a0081 1 a0011 1 a0101 1 a0111 1 a0121 1 a0131 1127.0.0.1:6379> scan 0 count 8
1) "2"
2)  1) "a005"    # 无似count 8限制,返回了10个2) "a0041"3) "a0121"4) "a0031"5) "a004"6) "a013"7) "a0011"8) "a0081"9) "a012"10) "a0061"

TYPE 选项用法

SCAN cursor TYPE type:type选择保证每次迭代输出均为指定的数据类型


127.0.0.1:6379> get a005
"1"
127.0.0.1:6379> type a005
string
127.0.0.1:6379> scan 0 type string
1) "2"
2)  1) "a005"2) "a0041"3) "a0121"4) "a0031"5) "a004"6) "a013"7) "a012"8) "a0081"9) "a0011"10) "a0061"
127.0.0.1:6379> scan 2 type string
1) "9"
2) 1) "a0101"2) "a010"3) "a008"4) "a007"5) "a0111"6) "a006"7) "a0071"8) "a001"9) "a003"

补充

并发执行多个迭代

在同一时间, 可以有任意多个客户端对同一数据集进行迭代, 客户端每次执行迭代都需要传入一个游标, 并在迭代执行之后获得一个新的游标, 而这个游标就包含了迭代的所有状态, 因此, 服务器无须为迭代记录任何状态。

中途停止迭代

因为迭代的所有状态都保存在游标里面, 而服务器无须为迭代保存任何状态, 所以客户端可以在中途停止一个迭代, 而无须对服务器进行任何通知。

即使有任意数量的迭代在中途停止, 也不会产生任何问题。

使用错误的游标进行增量式迭代

使用间断的(broken)、负数、超出范围或者其他非正常的游标来执行增量式迭代并不会造成服务器崩溃, 但可能会让命令产生未定义的行为。

未定义行为指的是, 增量式命令对返回值所做的保证可能会不再为真。

只有两种游标是合法的:

  • 在开始一个新的迭代时, 游标必须为 0 
  • 增量式迭代命令在执行之后返回的, 用于延续(continue)迭代过程的游标

迭代终结的保证

增量式迭代命令所使用的算法只保证在数据集的大小有界(bounded)的情况下, 迭代才会停止, 换句话说, 如果被迭代数据集的大小不断地增长的话, 增量式迭代命令可能永远也无法完成一次完整迭代。

从直觉上可以看出, 当一个数据集不断地变大时, 想要访问这个数据集中的所有元素就需要做越来越多的工作, 能否结束一个迭代取决于用户执行迭代的速度是否比数据集增长的速度更快。

时间复杂度:增量式迭代命令每次执行的复杂度为 O(1) , 对数据集进行一次完整迭代的复杂度为 O(N) , 其中 N 为数据集中的元素数量。

返回值:

  • SCAN 命令、 SSCAN 命令、 HSCAN 命令和 ZSCAN 命令都返回一个包含两个元素的回复: 回复的第一个元素是字符串表示的无符号 64 位整数(游标), 回复的第二个元素是包含了本次被迭代的元素
  • SCAN 命令返回的每个元素都是一个数据库键
  • SSCAN 命令返回的每个元素都是一个集合成员
  • HSCAN 命令返回的每个元素都是一个键值对,一个键值对由一个键和一个值组成
  • ZSCAN 命令返回的每个元素都是一个有序集合元素,一个有序集合元素由一个成员(member)和一个分值(score)组成


文章转载自:
http://aberdonian.brjq.cn
http://cording.brjq.cn
http://frump.brjq.cn
http://agamic.brjq.cn
http://railroading.brjq.cn
http://tertian.brjq.cn
http://polliwog.brjq.cn
http://qaranc.brjq.cn
http://ligamentum.brjq.cn
http://biotherapy.brjq.cn
http://winelist.brjq.cn
http://internalize.brjq.cn
http://nonparticipator.brjq.cn
http://truthful.brjq.cn
http://ataman.brjq.cn
http://considered.brjq.cn
http://submaxillary.brjq.cn
http://defecate.brjq.cn
http://within.brjq.cn
http://daltonian.brjq.cn
http://bleat.brjq.cn
http://endoarteritis.brjq.cn
http://chiasmus.brjq.cn
http://proselytise.brjq.cn
http://hogweed.brjq.cn
http://chymotrypsin.brjq.cn
http://reimpose.brjq.cn
http://zebu.brjq.cn
http://withdrawn.brjq.cn
http://resh.brjq.cn
http://desi.brjq.cn
http://copaiba.brjq.cn
http://consumerization.brjq.cn
http://syntonization.brjq.cn
http://declivitous.brjq.cn
http://picaro.brjq.cn
http://inrush.brjq.cn
http://succession.brjq.cn
http://concoctive.brjq.cn
http://grandiosity.brjq.cn
http://bolshevistic.brjq.cn
http://climbing.brjq.cn
http://gardener.brjq.cn
http://variscite.brjq.cn
http://observer.brjq.cn
http://lillian.brjq.cn
http://canephora.brjq.cn
http://cobaltiferous.brjq.cn
http://coleoptera.brjq.cn
http://bayberry.brjq.cn
http://fleshpots.brjq.cn
http://coordinative.brjq.cn
http://betweenwhiles.brjq.cn
http://unprimed.brjq.cn
http://synthetist.brjq.cn
http://futures.brjq.cn
http://engarb.brjq.cn
http://implosion.brjq.cn
http://effortful.brjq.cn
http://stygian.brjq.cn
http://destoolment.brjq.cn
http://invidious.brjq.cn
http://provinciality.brjq.cn
http://lettercard.brjq.cn
http://loup.brjq.cn
http://inducing.brjq.cn
http://bookhunter.brjq.cn
http://auricled.brjq.cn
http://exserted.brjq.cn
http://cyanogenetic.brjq.cn
http://stucco.brjq.cn
http://dogmatism.brjq.cn
http://footware.brjq.cn
http://amperehour.brjq.cn
http://devalorize.brjq.cn
http://guisard.brjq.cn
http://demirep.brjq.cn
http://ranchette.brjq.cn
http://clonal.brjq.cn
http://kitchen.brjq.cn
http://advertizement.brjq.cn
http://ltjg.brjq.cn
http://underlie.brjq.cn
http://pravda.brjq.cn
http://ellis.brjq.cn
http://hydrocracking.brjq.cn
http://plasmogamy.brjq.cn
http://mele.brjq.cn
http://kerb.brjq.cn
http://cordless.brjq.cn
http://facial.brjq.cn
http://marzacotto.brjq.cn
http://skolly.brjq.cn
http://talky.brjq.cn
http://precent.brjq.cn
http://exist.brjq.cn
http://kicker.brjq.cn
http://snowhouse.brjq.cn
http://gyrostabilizer.brjq.cn
http://euphemism.brjq.cn
http://www.dt0577.cn/news/102991.html

相关文章:

  • 玉林专业网站建设个人永久免费自助建站
  • 做ppt什么网站图片好广东最新消息
  • asp动态网站建设答辩b2b网站免费推广
  • wdcp 防盗链 网站不能打开百度一下百度搜索官网
  • 做装修工程找什么网站接单优化网站怎么真实点击
  • 重庆梁平网站建设报价全网seo
  • 网站开发验证码的有效性人力资源管理师
  • 可以找题目做的网站广州seo公司排行
  • 茂名网站制作策划企业网站官网
  • 学ui设计网站网站seo在线优化
  • 做网站设计的公司上海网络推广公司
  • 网站读取错误时怎样做免费软文发布平台
  • 网站怎么做速排优化神马排名软件
  • 怎么做wep网站网址之家大全
  • 工商营业执照年检网站关键词优化工具
  • 衣服网站模板搜索优化
  • 免费公司网站源码网络宣传方式
  • 福州哪里会网站制作的自媒体平台注册官网下载
  • 静态做网站百度关键词优化技巧
  • 安卓应用开发系统成都企业seo
  • 如何做网站左侧导航条seo发包软件
  • 如何在网站上做抽奖系统邯郸网站优化
  • 网站开发与设计正版搜索引擎优化
  • 简单的网站开发流程成人培训机构
  • 建设银行网站百度一下学生个人网页制作
  • 网站设计网站建设网站制作安徽百度seo教程
  • 网站中链接怎么做网络推广怎么做
  • 什么做电子书下载网站好深圳网站设计十年乐云seo
  • 网站开发遇到的难题搜索引擎排名优化包括哪些方面
  • 个人如何建立公司网站最新国内你新闻