Redis操作之Keys与多实例

Redis 的 KEYS 命令不能乱用 KESY 命令时间复杂度: O(N) , 假设Redis中的键名和给定的模式的长度有限的情况下,N为数据库中key的个数。Redis Keys 命令用于查找所有符合给定模式 pattern 的 key尽管这个操作的时间复杂度是 O(N), 但是常量时间相当低。例如,在一个普通笔记本上跑Redis,扫描100万个key只要40毫秒。命令格式 KEYS patternWarning: 生产环境使用 KEYS 命令需要非常小心。在大的数据库上执行命令会影响性能。 阅读详情

Keys简介

在该系列中,主要讲述的是与Redis数据类型相关的命令,如String、List、Set、Hashes和Sorted-Set。这些命令都具有一个共同点,即所有的操作都是针对与Key关联的Value的。而该篇博客将主要讲述与Key相关的Redis命令。学习这些命令对于学习Redis是非常重要的基础,也是能够充分挖掘Redis潜力的利器。

命令列表

命令原型

时间复杂度

命令描述

返回值

KEYS pattern

O(N)

时间复杂度中的N表示数据库中Key的数量。获取所有匹配pattern参数的Keys。需要说明的是,在我们的正常操作中应该尽量避免对该命令的调用,因为对于大型数据库而言,该命令是非常耗时的,对Redis服务器的性能打击也是比较大的。pattern支持glob-style的通配符格式,如*表示任意一个或多个字符,?表示任意字符,[abc]表示方括号中任意一个字母。

匹配模式的键列表。

DEL key [key ...]

O(N)

时间复杂度中的N表示删除的Key数量。从数据库删除中参数中指定的keys,如果指定键不存在,则直接忽略。还需要另行指出的是,如果指定的Key关联的数据类型不是String类型,而是List、Set、Hashes和Sorted Set等容器类型,该命令删除每个键的时间复杂度为O(M),其中M表示容器中元素的数量。而对于String类型的Key,其时间复杂度为O(1)。

实际被删除的Key数量。

EXISTS key 

O(1)

判断指定键是否存在。

1表示存在,0表示不存在。

MOVE key db 

O(1)

将当前数据库中指定的键Key移动到参数中指定的数据库中。如果该Key在目标数据库中已经存在,或者在当前数据库中并不存在,该命令将不做任何操作并返回0。  

移动成功返回1,否则0。

RENAME key newkey 

O(1)

为指定指定的键重新命名,如果参数中的两个Keys的命令相同,或者是源Key不存在,该命令都会返回相关的错误信息。如果newKey已经存在,则直接覆盖。 

 

RENAMENX key newkey

O(1)

如果新值不存在,则将参数中的原值修改为新值。其它条件和RENAME一致。

1表示修改成功,否则0。

PERSIST key

O(1)

如果Key存在过期时间,该命令会将其过期时间消除,使该Key不再有超时,而是可以持久化存储。

1表示Key的过期时间被移出,0表示该Key不存在或没有过期时间。

EXPIRE key seconds 

O(1) 

该命令为参数中指定的Key设定超时的秒数,在超过该时间后,Key被自动的删除。如果该Key在超时之前被修改,与该键关联的超时将被移除。 

1表示超时被设置,0则表示Key不存在,或不能被设置。

EXPIREAT key timestamp 

O(1) 

该命令的逻辑功能和EXPIRE完全相同,唯一的差别是该命令指定的超时时间是绝对时间,而不是相对时间。该时间参数是Unix timestamp格式的,即从1970年1月1日开始所流经的秒数。

1表示超时被设置,0则表示Key不存在,或不能被设置。 

TTL key 

O(1)

获取该键所剩的超时描述。 

返回所剩描述,如果该键不存在或没有超时设置,则返回-1。

RANDOMKEY

O(1)  

从当前打开的数据库中随机的返回一个Key。

返回的随机键,如果该数据库是空的则返回nil。

TYPE key 

O(1) 

获取与参数中指定键关联值的类型,该命令将以字符串的格式返回。

返回的字符串为string、list、set、hash和zset,如果key不存在返回none。

SORT key [BY pattern] [LIMIT offset count] [GET pattern [GET pattern ...]] [ASC|DESC] [ALPHA] [STORE destination] 

O(N+M*log(M)) 

这个命令相对来说是比较复杂的,因此我们这里只是给出最基本的用法,有兴趣的网友可以去参考redis的官方文档。

返回排序后的原始列表。

实例

KEYS/RENAME/DEL/EXISTS/MOVE/RENAMENX

#在Shell命令行下启动Redis客户端工具。
    /> redis-cli
    #清空当前选择的数据库,以便于对后面示例的理解。
    redis 127.0.0.1:6379> flushdb
    OK
    #添加String类型的模拟数据。
    redis 127.0.0.1:6379> set mykey 2
    OK
    redis 127.0.0.1:6379> 
set mykey2 "hello"
    OK
    #添加Set类型的模拟数据。
    redis 127.0.0.1:6379> sadd mysetkey 1 2 3
    (integer) 3
    #添加Hash类型的模拟数据。
    redis 127.0.0.1:6379> hset mmtest username "stephen"
    (integer) 1
    #根据参数中的模式,获取当前数据库中符合该模式的所有key,从输出可以看出,该命令在执行时并不区分与Key关联的Value类型。
    redis 127.0.0.1:6379> keys my*
    1) "mysetkey"
    2) "mykey"
    3) "mykey2"

    #删除了两个Keys。
    redis 127.0.0.1:6379> del mykey mykey2
    (integer) 2
    #查看一下刚刚删除的Key是否还存在,从返回结果看,mykey确实已经删除了。
    redis 127.0.0.1:6379> exists mykey
    (integer) 0
    #查看一下没有删除的Key,以和上面的命令结果进行比较。
    redis 127.0.0.1:6379> exists mysetkey
    (integer) 1
    #将当前数据库中的mysetkey键移入到ID为1的数据库中,从结果可以看出已经移动成功。
    redis 127.0.0.1:6379> move mysetkey 1
    (integer) 1
    #打开ID为1的数据库。
    redis 127.0.0.1:6379> select 1
    OK
    #查看一下刚刚移动过来的Key是否存在,从返回结果看已经存在了。
    redis 127.0.0.1:6379[1]> exists mysetkey
    (integer) 1
    #在重新打开ID为0的缺省数据库。
    redis 127.0.0.1:6379[1]> select 0
    OK
    #查看一下刚刚移走的Key是否已经不存在,从返回结果看已经移走。
    redis 127.0.0.1:6379> exists mysetkey
    (integer) 0
    #准备新的测试数据。    
    redis 127.0.0.1:6379> set mykey "hello"
    OK
    #将mykey改名为mykey1
    redis 127.0.0.1:6379> rename mykey mykey1
    OK
    #由于mykey已经被重新命名,再次获取将返回nil。
    redis 127.0.0.1:6379> get mykey
    (nil)
    #通过新的键名获取。
    redis 127.0.0.1:6379> get mykey1
    "hello"
    #由于mykey已经不存在了,所以返回错误信息。
    redis 127.0.0.1:6379> rename mykey mykey1
    (error) ERR no such key
    #为renamenx准备测试key
    redis 127.0.0.1:6379> set oldkey "hello"
    OK
    redis 127.0.0.1:6379> 
set newkey "world"
    OK
    #由于newkey已经存在,因此该命令未能成功执行。
    redis 127.0.0.1:6379> renamenx oldkey newkey
    (integer) 0
    #查看newkey的值,发现它也没有被renamenx覆盖。
    redis 127.0.0.1:6379> get newkey
    "world"

PERSIST/EXPIRE/EXPIREAT/TTL 

    #为后面的示例准备的测试数据。
    redis 127.0.0.1:6379> set mykey "hello"
    OK
    #将该键的超时设置为100秒。
    redis 127.0.0.1:6379> expire mykey 100
    (integer) 1
    #通过ttl命令查看一下还剩下多少秒。
    redis 127.0.0.1:6379> ttl mykey
    (integer) 97
    #立刻执行persist命令,该存在超时的键变成持久化的键,即将该Key的超时去掉。
    redis 127.0.0.1:6379> persist mykey
    (integer) 1
    #ttl的返回值告诉我们,该键已经没有超时了。
    redis 127.0.0.1:6379> ttl mykey
    (integer) -1
    #为后面的expire命令准备数据。
    redis 127.0.0.1:6379> del mykey
    (integer) 1
    redis 127.0.0.1:6379> 
set mykey "hello"
    OK
 
   #设置该键的超时被100秒。
    redis 127.0.0.1:6379> expire mykey 100
    (integer) 1
    #用ttl命令看一下当前还剩下多少秒,从结果中可以看出还剩下96秒。
    redis 127.0.0.1:6379> ttl mykey
    (integer) 96
    #重新更新该键的超时时间为20秒,从返回值可以看出该命令执行成功。
    redis 127.0.0.1:6379> expire mykey 20
    (integer) 1
    #再用ttl确认一下,从结果中可以看出果然被更新了。
    redis 127.0.0.1:6379> ttl mykey
    (integer) 17
    #立刻更新该键的值,以使其超时无效。
    redis 127.0.0.1:6379> set mykey "world"
    OK
    #从ttl的结果可以看出,在上一条修改该键的命令执行后,该键的超时也无效了。
    redis 127.0.0.1:6379> ttl mykey
    (integer) -1
 

TYPE/RANDOMKEY/SORT

   #由于mm键在数据库中不存在,因此该命令返回none。
    redis 127.0.0.1:6379> type mm
    none
    #mykey的值是字符串类型,因此返回string。
    redis 127.0.0.1:6379> type mykey
    string
    #准备一个值是set类型的键。
    redis 127.0.0.1:6379> sadd mysetkey 1 2
    (integer) 2
    #mysetkey
的键是set,因此返回字符串set。
    redis 127.0.0.1:6379> type mysetkey
    set
    #返回数据库中的任意键。
    redis 127.0.0.1:6379> randomkey
    "oldkey"
    #清空当前打开的数据库。
    redis 127.0.0.1:6379> flushdb
    OK
    #由于没有数据了,因此返回nil。
    redis 127.0.0.1:6379> randomkey
    (nil)

多数据库测试

实例

         一个Redis实例可以包括多个数据库,客户端可以指定连接某个redis实例的哪个数据库,就好比一个mysql中创建多个数据库,客户端连接时指定连接哪个数据库。

         一个redis实例最多可提供16个数据库,下标从0到15,客户端默认连接第0号数据库,也可以通过select选择连接哪个数据库,如下连接1号库:

 

在1号库中查询上节设置的数据,结果查询不到:

 

重新选择第0号数据库,查询数据:

 

如果选择一个不存在数据库则会报错:

注意:redis不支持修改数据库的名称,只能通过select 0、select 1...选择数据库。

注意问题

在0号数据库存储数据,在1号数据库执行清空数据命令却把0号数据库的数据给清空了:

 

建议:不同的应用系统要使用不同的redis实例而不是使用同一个redis实例下的不同数据库。

IEEE投稿完整流程——以IEEE Transactions on Cybernetics为例【附:论文格式模板】 前言 以下是官方的流程,包括了论文的格式和提交的流程,重要!重要!重要! 在IEEE的官网中,也有论文提交的文件 可以直接参考: 中文版: 作者指南 英文版: Manuscripts-Author-Guide 作者指南的版本指导流程可能和最新版的官网不一致!!! 或者在下面的链接中,按照你的论文类型,选择不同的论文模板: IEEE article template 以下以IEEE Transactions on Cybernetics 为例子 IEEE Transactions on Cyberne 阅读详情

相关推荐

JFET放大电路实例设计仿真

参照《晶体管电路设计》中的例子 JFET 2SK184 JFET 2SK184 数据手册如下 电路设计 共源放大 步骤:1、静态工作点 2N4416 1ma 2、RD和RS A=5 5:1 RS 2V /1m=2k RD 5k 3、偏压VG 根据传输特性 VGS-ID vgs=-0.7 vg=2-0.7=1.3 400k^2/50k...

f的博客 7440

redis集群下使用lua脚本时有多个key的解决办法

redis单节点 key都在同一个节点上; redis集群 key经过算法后,会分布在不同的节点上; lua脚本限制 执行脚本中涉及到的key要在同一个节点上; 解决方案 在key中使用‘{}’,redis计算key要保存到那个节点上时,是根据‘{}’它里面的值来计算的,只要这里面的值是相同的,就会保存到相同的节点上; 注意:保存的key也会带上‘{}’; 例如 {key}abcd、 {key}1234、abcd{key}1234 集群命令 计算key会保存到的slot; cluster keyslot {

大叶子不小的博客 3761

(Linux)DHCP 超级作用域和中继代理(超难受做了超久)

DHCP服务器在192.168.159.0 可以实现分配IP的功能,现在要跨网段分配IP 就需要用到DHCP中继代理。中继代理有两张网卡分别eth0:IP 192.168.159.2 ;eth1: IP:192.168.200.2 。现在要实现192.168.200.0网段的客户机可以获取DHCP服务器的IP。中继代理其实是相当于一个路由器的作用 DHCP服务器的IP地址 :192.168.159...

DJ_joker的博客 2223

Redis分片集群(详解+图)

解决问题:海量数据存储和高并发写 分片集群特征: 集群中有多个master,每个master保存不同数据 每个master都可以有多个slave节点 master之间通过ping监测彼此健康状态 客户端请求可以访问集群任意节点,最终都会被转发到正确节点 散列插槽 Redis会把每一个master节点映射到0~16383共16384个插槽(hash slot)上,查看集群信息时就能看到: 数据key不是与节点绑定,而是与插槽绑定。redis会根据key的有效部分计算插槽..

qq_45748269的博客 1万+

警惕AI依赖:如何避免数字水蛭侵蚀你的认知能力

在人工智能技术日益普及的今天,人机协作已成为现代工作流的核心范式。其原理在于通过算法模型辅助人类完成信息处理、内容生成等任务,从而提升效率。然而,过度依赖AI可能导致认知卸载,引发思考能力退化等潜在风险。从技术价值看,AI的核心在于增强而非替代人类智能,关键在于建立健康的协作模式。在应用场景上,无论是编程开发、内容创作还是决策分析,用户都需警惕工具依赖对深度工作、创造性思维和决策责任的侵蚀。本文聚焦于识别AI依赖的早期信号,并提供构建分阶段使用流程、将AI作为质疑者等具体策略,旨在帮助读者守护核心认知能力,

weixin_30240349的博客 624

BugkuCTF-PWN题pwn2-overflow超详细讲解

解题思路 1)计算出get_shell_的地址偏移量 2)算出来之后就直接溢出到后门函数 知识点 x64函数调用规则 解题之前我们先学下linux x64的函数调用规则。 x64机器在调用某个函数前,比如int func(int a, int b, int c, int d, int e, int f, int g, int h),首先他会把前6个参数从左往右存入到寄存器rdi、rsi、rdx、rcx、r8、r9,其余参数存入到栈里,保存的顺序是从右往左入栈。比如abcdef会存入到寄存器里,然后一次入栈h

am_03的博客 3013

飘逸的python - 实现glob style pattern

一说起通配符,大家很快就会想起*和?号,有了通配符,使得表达能力大大增强,很多linux命令都支持这个东西,其实就是glob style pattern. 就连redis的keys命令都支持glob. 我要实现的glob,支持以下特性: 星号*匹配0个或多个任意字符?匹配确切的一个任意字符[characters]匹配任意一个方括号内的字符,比如[abc],要么匹配a,要么匹配b,要么

mattkang 4326

2026年数字IC设计禾赛科技笔试带答案解析

本文介绍了一份数字IC设计工程师笔试的试卷结构和部分题目解析。试卷包含15道单选题(30分)、10道填空题(20分)和5道简答/编程题(50分),总分100分,考试时长120分钟。单选题涉及同步时序电路、Verilog语法、跨时钟域设计、FPGA优化、存储器层次、功耗优化等知识点;填空题考查环形振荡器、工艺参数、时序约束、LUT结构等基础概念。试题重点考察应聘者对数字电路设计核心概念的理解和实际工程应用能力,特别是针对激光雷达芯片设计中的关键技术点进行考核。

Open 123

redis-集群与分区

集群与分区 分区是将数据分布在多个Redis实例(Redis主机)上,以至于每个实例只包含一部分数据 分区的意义 性能的提升 单机Redis的网络I/O能力和计算资源是有限的,将请求分散到多台机器,充分利用多台机器的计算能力可网络带宽,有助于提高Redis总体的服务能力。 存储能力的横向扩展 即使Redis的服务能力能够满足应用需求,但是随着存储数据的增加,单台机器受限于机器本身的存储容量,将数据分散到多台机器上存储使得Redis服务可以横向扩展 分区的方式 根据分区键(id)进行分区: 范围分

小城我家 891

YOLO26 改进 - 注意力机制 | Mask Attention掩码注意力,可学习掩码矩阵破解低分辨率特征提取难题 | 2025 预印

本文提出了用于低分辨率图像分割的MaskAttn - UNet框架,并将其核心的掩码注意力机制集成到YOLO26中。传统U - Net类模型难以捕捉全局关联,Transformer类模型计算量大,而掩码注意力机制通过可学习的掩码,让模型选择性关注重要区域,融合了卷积的局部效率和注意力的全局视野。其工作流程包括特征适配、掩码生成、定向注意力计算和特征融合。我们将掩码注意力机制代码集成到YOLO26中。

魔改工程师的博客 834

基于Simulink的电动汽车动力总成控制策略验证与标定仿真平台

电动汽车的动力总成(Powertrain)是车辆的核心系统,包括动力电池、电机控制器、逆变器和驱动电机等关键部件。动力总成的控制策略直接影响车辆的动力性能、能耗效率和驾驶体验。为了验证和优化这些控制策略,基于MATLAB/Simulink的仿真平台成为一种高效且经济的解决方案。本项目旨在构建一个完整的基于Simulink的电动汽车动力总成控制策略验证与标定仿真平台,涵盖控制策略建模、性能评估以及参数标定等功能模块,并通过仿真验证系统的有效性。

xiaoheshang_123的博客 177

redis 集群,key不均匀问题

redis 主从 集群 哨兵

weixin_48155735的博客 1170

Unitree G1仿人机器人协同搬箱:从仿真搭建到多机协同部署完整指南

Unitree G1仿人机器人协同搬箱技术方案摘要 本文提供了一套完整的Unitree G1人形机器人协同搬箱解决方案,涵盖从仿真环境搭建到多机协同部署的全流程。核心内容包括: 双仿真环境配置:同时搭建Gazebo+ROS Noetic基础仿真环境与Isaac Gym+Mujoco高性能RL训练环境,支持Sim2Sim迁移验证 训练框架搭建:详细配置unitree_rl_gym框架,提供PPO算法定制化训练流程和参数优化方案 数据集应用:整合宇树开源真机数据集(UnifoLM-WBT-Dataset)~~~

huanghm88的专栏 471

webman缓存策略:Redis配置与性能优化全指南

在构建高性能PHP应用时,缓存策略是提升系统响应速度的关键环节。webman作为一款高性能PHP框架,通过与Redis的深度整合,为开发者提供了高效可靠的缓存解决方案。本文将详细介绍如何在webman中配置Redis缓存,并分享实用的性能优化技巧,帮助你轻松打造极速响应的Web应用。 ## Redis基础配置:快速上手指南 webman的Redis配置文件位于项目根目录下的`config/re

gitblog_01085的博客 805

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Redis学习笔记(一):基础

核心 一、Redis单机多实例原理 每个实例对应不同的配置文件,配置文件对应不同的端口、数据库文件位置、日志位置。 二、Redis单实例多数据库 每个Redis实例都有16个数据库,下标从0-15,当 set 一个数据时,默认添加到 db0,而select 命令可以切换当前使用的数据库,例:select 15 Redis 三、数据库构造 每个数据库相当于一棵树的根节点,子节点可以是Redis定义的...

494

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

python操作redis——keys

前面介绍了Linux客户端redis的keys操作以及连接认证的三个设置,那么python客户端怎么操作呢,我们来复现一下。 python 需要先 pip install redis from redis import Redis if __name__ == '__main__': client=Redis(host='192.168.174.129',port=6666) # 各种操作…… client.close() 注意上面返回的值类型是byte型: keys=client.keys() pri

escaping的博客 1086

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Redis键(Keys)

在 Redis 中,键(Keys)是非常重要的概念,它们代表了存储在数据库中的数据的标识符。对键的有效管理和操作是使用 Redis 数据库的关键一环,它直接影响到数据的存取效率、系统的稳定性和开发的便利性。本文将深入探讨 Redis 中键的管理和操作,包括键的命名规范、常用的键操作命令以及一些最佳实践。我们将详细介绍如何合理命名键、如何使用键的过期和持久化特性、如何批量删除键等技巧,旨在帮助读者更好地理解并灵活运用 Redis 中的键,从而提高数据管理和操作的效率和可靠性。

zhiqiuqiu2的博客 5817

Redis命令——Keys相关

以下为Redis中有关Keys操作的一些命令,内容主要来源于Redis的官方文档。如有需要,请参阅Redis的官方文档:http://redis.io/commands#generic……

1万+

redis keys 模糊匹配_Redis 千万不要乱用KEYS命令,不然会挨打的

Redis现如今使用的场景越来越多?如何批量删除key呢?有人说用KEYS命令,刚开始学Redis的时候就是用这个命令列出库中键。KEYS命令要谨慎使用。为何?客观别急,我们先一步步来看。KEYS 命令 Warning: consider KEYS as a command that should only be used in production environments with extr...

weixin_39981400的博客 3676

Redis之Keys命令和Scan命令

网上看到的面试题:Redis有1亿个key,其中10w个key是以某个固定的前缀开头,如何将它们全部找出来?下面具体分析一下两种命令。

四问四不知的博客 1072

Redis 的 KEYS 命令不能乱用啊

Redis 是我们每天都在用的工具,但它不是“黑盒”。理解它的机制,敬畏它的限制,才能真正发挥它的价值。下次当你想敲下KEYS *的时候,不妨多问自己一句:“我真的需要扫全库吗?有没有更好的方式?有时候,克制,才是高手的标志。代码写多了,你会发现,真正厉害的不是那些炫技的人,而是能避开陷阱、稳扎稳打的“守门人”。KEYS不是技术难题,但它考验的是你的责任心和专业素养。共勉。

记录学习路上的每一个 “啊哈!” 时刻 欢迎交流,共同进步! 820

django-redis批量操作优化:keys、delete_pattern性能调优

在Django项目开发中,使用redis作为缓存后端时,批量操作如`keys`和`delete_pattern`的性能优化至关重要。django-redis作为功能全面的Redis缓存后端,提供了高效处理这些操作的方法,帮助开发者避免性能瓶颈,提升应用响应速度。 ## 为什么需要优化keys和delete_pattern操作? 传统的`KEYS`命令在Redis中存在严重性能问题,尤其是在数据

gitblog_00284的博客 906

Redis危险命令禁用keys、flushdb、flushall及解决方案

Redis的危险命令主要有以下几个 keys 查找所有符合给定模式pattern(正则表达式)的 key 。 时间复杂度为O(N),N为数据库里面key的数量。 速度极快,在一百万的key数据库中查询时间大约是40毫秒。 redis> MSET one 1 two 2 three 3 four 4 OK redis> KEYS *o* 1) "four" 2) "one" 3...

青衣煮茶 1万+

Redis常用操作之批量删除keys,和清空整个数据库

redis默认有0-15总共16个库,默认在0库 1、选择库DB0,例:select 1 选择db1 10.143.153.216:8896> select 0 OK 2、查看所选择库的大小: 127.0.0.1:6379[0]> DBSIZE (integer) 728 3、获取db0库的key为”city_中国,四川省,巴中市“的数据 127.0.0.1:6...

helloxiaozhe的博客 2万+

【redis】全局命令set、get、keys

Redis 支持很多种数据结构。整体上来说,Redis 是键值对结构key固定就是字符串,value实际上会有多种类型字符串哈希表列表集合有序集合操作上面不同的数据结构,就会有不同的命令。而全局命令,就是可以搭配任意一个数据结构来使用的命令。

Yeeear的博客 1825

Spring Data 集成 Redis redisTemplate 封装 scan keys ,scan相比于keys的优势与缺点

Spring data 集成 redis keys 与 scan 的区别 keys redisconnection.keys keys 命令用于返回指定的正则表达式所匹配的所有key的列表,其所检索的是redis当前所使用的数据库(默认为0号数据库) 性能问题 由于每个Redis实例是使用单线程处理所有请求的,故keys命令和其他命令都是在同一队列排队等待执行的,如果keys命令执行时间长,则会阻碍其他命令的执行,导致性能问题。如果keys命令需要匹配非常多的key,则可能造成长期停顿。 redis

Snails的博客 5814
上一篇: jedis操作redis
下一篇: redis.conf配置文件解读
qq_34412985
博客等级 码龄11年 143粉丝 983原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值