当前位置: 首页 > 编程日记 > 正文

redis命令大全

一、key pattern 查询相应的key

(1)Redis允许模糊查询key  有3个通配符  *、?、[]

(2)randomkey:返回随机key

(3)type key:返回key存储的类型

(4)exists key:判断某个key是否存在

(5)del key:删除key

(6)rename key newkey:改名

(7)renamenx key newkey:如果newkey不存在则修改成功

(8)move key 1:将key移动到1数据库

(9)ttl key:查询key的生命周期(秒)

(10)expire key 整数值:设置key的生命周期以秒为单位

(11)pexpire key 整数值:设置key的生命周期以毫秒为单位

(12)pttl key:查询key 的生命周期(毫秒)

(13)perisist key:把指定key设置为永久有效

二、字符串类型的操作

(1)set key value [ex 秒数] [px 毫秒数] [nx/xx]

如果ex和px同时写,则以后面的有效期为准

nx:如果key不存在则建立

xx:如果key存在则修改其值

(2)get key:取值

(3)mset key1 value1 key2 value2 一次设置多个值

(4)mget key1 key2 :一次获取多个值

(5)setrange key offset value:把字符串的offset偏移字节改成value

如果偏移量 > 字符串长度,该字符自动补0x00

(6)append key value :把value追加到key 的原值上

(7)getrange key start stop:获取字符串中[start, stop]范围的值

对于字符串的下标,左数从0开始,右数从-1开始

注意:当start>length,则返回空字符串

当stop>=length,则截取至字符串尾

如果start所处位置在stop右边,则返回空字符串

(8)getset key nrevalue:获取并返回旧值,在设置新值

(9)incr key:自增,返回新值,如果incr一个不是int的value则返回错误,incr一个不存在的key,则设置key为1

(10)incrby key 2:跳2自增

(11)incrbyfloat by 0.7: 自增浮点数

(12)setbit key offset value:设置offset对应二进制上的值,返回该位上的旧值

注意:如果offset过大,则会在中间填充0

offset最大到多少

2^32-1,即可推出最大的字符串为512M

(13)bitop operation destkey key1 [key2..]    对key1 key2做opecation并将结果保存在destkey上

opecation可以是AND OR NOT XOR

(14)strlen key:取指定key的value值的长度

(15)setex key time value:设置key对应的值value,并设置有效期为time秒

三、链表操作

redis的list类型其实就是一个每个子元素都是string类型的双向链表,链表的最大长度是2^32。list既可以用做栈,也可以用做队列。

list的pop操作还有阻塞版本,主要是为了避免轮询

(1)lpush key value:把值插入到链表头部

(2)rpush key value:把值插入到链表尾部

(3)lpop key :返回并删除链表头部元素

(4)rpop key: 返回并删除链表尾部元素

(5)lrange key start stop:返回链表中[start, stop]中的元素

(6)lrem key count value:从链表中删除value值,删除count的绝对值个value后结束

count > 0 从表头删除  count < 0 从表尾删除  count=0 全部删除

(7)ltrim key start stop:剪切key对应的链接,切[start, stop]一段并把改制重新赋给key

(8)lindex key index:返回index索引上的值

(9)llen key:计算链表的元素个数

(10)linsert key after|before search value:在key 链表中寻找search,并在search值之前|之后插入value

(11)rpoplpush source dest:把source 的末尾拿出,放到dest头部,并返回单元值

应用场景: task + bak 双链表完成安全队列

业务逻辑: rpoplpush task bak

接收返回值并做业务处理

如果成功则rpop bak清除任务,如果不成功,下次从bak表取任务

(12)brpop,blpop key timeout:等待弹出key的尾/头元素

timeout为等待超时时间,如果timeout为0则一直等待下去

应用场景:长轮询ajax,在线聊天时能用到

四、hashes类型及操作

Redis hash 是一个string类型的field和value的映射表,它的添加、删除操作都是O(1)(平均)。hash特别适用于存储对象,将一个对象存储在hash类型中会占用更少的内存,并且可以方便的存取整个对象。

配置: hash_max_zipmap_entries 64 #配置字段最多64个

hash_max_zipmap_value 512 #配置value最大为512字节

(1)hset myhash field value:设置myhash的field为value

(2)hsetnx myhash field value:不存在的情况下设置myhash的field为value

(3)hmset myhash field1 value1 field2 value2:同时设置多个field

(4)hget myhash field:获取指定的hash field

(5)hmget myhash field1 field2:一次获取多个field

(6)hincrby myhash field 5:指定的hash field加上给定的值

(7)hexists myhash field:测试指定的field是否存在

(8)hlen myhash:返回hash的field数量

(9)hdel myhash field:删除指定的field

(10)hkeys myhash:返回hash所有的field

(11)hvals myhash:返回hash所有的value

(12)hgetall myhash:获取某个hash中全部的field及value

五、集合结构操作

特点:无序性、确定性、唯一性

(1)sadd key value1 value2:往集合里面添加元素

(2)smembers key:获取集合所有的元素

(3)srem key value:删除集合某个元素

(4)spop key:返回并删除集合中1个随机元素(可以坐抽奖,不会重复抽到某人)

(5)srandmember key:随机取一个元素

(6)sismember key value:判断集合是否有某个值

(7)scard key:返回集合元素的个数

(8)smove source dest value:把source的value移动到dest集合中

(9)sinter key1 key2 key3:求key1 key2 key3的交集

(10)sunion key1 key2:求key1 key2 的并集

(11)sdiff key1 key2:求key1 key2的差集

(12)sinterstore res key1 key2:求key1 key2的交集并存在res里

六、有序集合

概念:它是在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动按新的值调整顺序。可以理解为有两列的MySQL表,一列存储value,一列存储顺序,操作中key理解为zset的名字。

和set一样sorted,sets也是string类型元素的集合,不同的是每个元素都会关联一个double型的score。sorted set的实现是skip list和hash table的混合体。

当元素被添加到集合中时,一个元素到score的映射被添加到hash table中,所以给定一个元素获取score的开销是O(1)。另一个score到元素的映射被添加的skip list,并按照score排序,所以就可以有序地获取集合中的元素。添加、删除操作开销都是O(logN)和skip list的开销一致,redis的skip list 实现是双向链表,这样就可以逆序从尾部去元素。sorted set最经常使用方式应该就是作为索引来使用,我们可以把要排序的字段作为score存储,对象的ID当元素存储。

(1)zadd key score1 value1:添加元素

(2)zrange key start stop [withscore]:把集合排序后,返回名次[start,stop]的元素  默认是升续排列  withscores 是把score也打印出来

(3)zrank key member:查询member的排名(升序0名开始)

(4)zrangebyscore key min max [withscores] limit offset N:集合(升序)排序后取score在[min, max]内的元素,并跳过offset个,取出N个

(5)zrevrank key member:查询member排名(降序 0名开始)

(6)zremrangebyscore key min max:按照score来删除元素,删除score在[min, max]之间

(7)zrem key value1 value2:删除集合中的元素

(8)zremrangebyrank key start end:按排名删除元素,删除名次在[start, end]之间的

(9)zcard key:返回集合元素的个数

(10)zcount key min max:返回[min, max]区间内元素数量

(11)zinterstore dest numkeys key1[key2..] [WEIGHTS weight1 [weight2...]] [AGGREGATE SUM|MIN|MAX]

求key1,key2的交集,key1,key2的权值分别是weight1,weight2

聚合方法用 sum|min|max

聚合结果 保存子dest集合内

注意:weights,aggregate如何理解?

答:如果有交集,交集元素又有score,score怎么处理?aggregate num->score相加,min最小score,max最大score,另外可以通过weights设置不同的key的权重,交集时  score*weight

七、服务器相关命令

(1)ping:测定连接是否存活

(2)echo:在命令行打印一些内容

(3)select:选择数据库

(4)quit:退出连接

(5)dbsize:返回当前数据库中key的数目

(6)info:获取服务器的信息和统计

(7)monitor:实时转储收到的请求

(8)config get 配置项:获取服务器配置的信息

config set 配置项  值:设置配置项信息

(9)flushdb:删除当前选择数据库中所有的key

(10)flushall:删除所有数据库中的所有的key

(11)time:显示服务器时间,时间戳(秒),微秒数

(12)bgrewriteaof:后台保存rdb快照

(13)bgsave:后台保存rdb快照

(14)save:保存rdb快照

(15)lastsave:上次保存时间

(16)shutdown [save/nosave]

注意:如果不小心运行了flushall,立即shutdown nosave,关闭服务器,然后手工编辑aof文件,去掉文件中的flushall相关行,然后开启服务器,就可以倒回原来是数据。如果flushall之后,系统恰好bgwriteaof了,那么aof就清空了,数据丢失。

(17)showlog:显示慢查询

问:多慢才叫慢?

答:由slowlog-log-slower-than 10000,来指定(单位为微秒)

问:服务器存储多少条慢查询记录

答:由slowlog-max-len 128,来做限制

转载于:https://www.cnblogs.com/jiahaoJAVA/p/7284026.html

相关文章:

批量下载文献中的参考文献

批量下载文献中的参考文献 这里写目录标题批量下载文献中的参考文献一级目录二级目录三级目录一、下载所有你需要文献的引文题录二、导入到文献管理软件中**点击导入文献&#xff0c;上一步已经下载的&#xff0c;如果不会EndNote导入题录的话也可以直接拖进去或者百度咯****导…

python Django 学习笔记

* python版本和Django对应的关系&#xff1a; * Django2.0系列之后&#xff0c;不支持python2.x系列 * 安装&#xff1a; pycharm直接可以搜索安装&#xff0c;可以省略手工安装的麻烦 需要手动安装&#xff1a;pip install django * 转载于:https://www.cnblogs.com/chenadong…

reporting Server組件不全引起的致命錯誤

在做專案的時候&#xff0c;前几天release一個windows的版本可以工作得很好&#xff0c;但今天release出去的卻出現在致命錯誤&#xff0c;根本無法啟動,從事件管理器中把錯誤信息摘出如下&#xff1a;事件類型: 錯誤 事件來源: .NET Runtime 2.0 Error Reporting 事件類別目錄…

祝大家端午节快乐

今天是农历五月五日&#xff0c;端午节&#xff0c;祝大家节日快乐&#xff01;吃粽子啦&#xff01;&#xff01;

shell脚本中判断上一个命令是否执行成功

2018-12-21 shell中使用符号“$?”来显示上一条命令执行的返回值&#xff0c;如果为0则代表执行成功&#xff0c;其他表示失败。结合if-else语句实现判断上一个命令是否执行成功 示例如下&#xff1a; if [ $? -ne 0 ]; thenecho "failed" elseecho "succeed&…

Opencv4测试报错00007FFB3253A9C0 (ntdll.dll)处引发的异常: 0xC0000005: 读取位置 0x0000000000000010 时发生访问冲突

报错信息如下&#xff1a; 0x00007FFB3253A9C0 (ntdll.dll)处(位于 test1.exe 中)引发的异常: 0xC0000005: 读取位置 0x0000000000000010 时发生访问冲突 刚刚安装了Opencv4.5,并且在Visual Studio 2019中进行了配置&#xff0c;准备测试一下是否运行良好&#xff0c;进行一个…

Python ATM

# ATM 模拟实现# 功能&#xff1a;# 输入对应的数字进入不同的功能&#xff1a;# 1. 支持进入商城购物&#xff0c;并通过信用卡结账。# 2. 支持信用卡余额查询。# 3. 支持不同用户之间的转账。# 4. 支持账单还款&#xff08;充值功能&#xff09;。# 5. 支持查看账单详情。# 6…

从.NET1.1升级到.NET2.0时出现的PInvokeStackImbalance错误

从.NET1.1升级到.NET2.0时出现的PInvokeStackImbalance错误 微软官方的解释(http://msdn2.microsoft.com/zh-cn/library/0htdy0k3.aspx) 如果 CLR 检测到平台调用之后的堆栈深度与 DllImportAttribute 属性指定的调用约定中以及托管签名的参数声明中提供的预期堆栈深度不匹配&a…

我在犹豫是不是该收集这几首MP3

我在犹豫是不是该收集这几首MP3&#xff0c;确实&#xff0c;曲子歌词都非常不错。可我找不到收藏的理由。总是一个想法&#xff0c;让我放弃和错过了很多东西&#xff1a;我已经错过和失去了很多&#xff0c;这一次又算什么呢&#xff1f;这样的想法让我在面对很多人或事都已经…

大数据【四】MapReduce(单词计数;二次排序;计数器;join;分布式缓存)

前言&#xff1a; 根据前面的几篇博客学习&#xff0c;现在可以进行MapReduce学习了。本篇博客首先阐述了MapReduce的概念及使用原理&#xff0c;其次直接从五个实验中实践学习&#xff08;单词计数&#xff0c;二次排序&#xff0c;计数器&#xff0c;join&#xff0c;分布式缓…

Flutter中集成Font Awesome

1、添加引用 在 pubspec.yaml文件中&#xff0c;加入 font awesome的引用 1 dependencies:2 flutter:3 sdk: flutter4 5 # The following adds the Cupertino Icons font to your application.6 # Use with the CupertinoIcons class for iOS style icons.7 cupert…

sed linux 命令

sed linux 命令 1. Sed简介 2. 定址 3. Sed命令 4. 选项 5. 元字符集 6. 实例 7. 脚本 1. Sed简介 sed 是一种在线编辑器&#xff0c;它一次处理一行内容。处理时&#xff0c;把当前处理的行存储在临时缓冲区中&#xff0c;称为“模式空间”&#xff08;pattern space&#xff…

Typora链接跳转,页内和页外

Typora链接跳转Typora链接跳转跳转到给定链接跳转到指定文件页内跳转跳转到标题所在位置跳转到非标题所在位置&#xff0c;即页面内任何位置测试位置Typora链接跳转 跳转到给定链接 这个简单&#xff0c;直接使用语法[名称](url) 例如&#xff1a;百度 跳转到指定文件 页内…

Windows Vista正版光碟上面的隐藏人像

From:Geeker Vision我自己依然在用WinXP&#xff0c;因为Vista目前的兼容性还不是很好。不过各位朋友当中有谁买了正版的Windows Vista么&#xff1f;如果有&#xff0c;请留意一下&#xff0c;看看光碟上面是否也有三个神秘的隐藏人像&#xff1f;哪三个&#xff1f;以Windows…

《JAVA与模式》之备忘录模式

备忘录模式又叫做快照模式(Snapshot Pattern)或Token模式&#xff0c;是对象的行为模式。 备忘录对象是一个用来存储另外一个对象内部状态的快照的对象。备忘录模式的用意是在不破坏封装的条件下&#xff0c;将一个对象的状态捕捉(Capture)住&#xff0c;并外部化&#xff0c;存…

OpenCV 图像加载和显示

OpenCV 图像加载和显示OpenCV 图像加载和显示加载图像&#xff08;使用cv :: imread&#xff09;创建一个名为OpenCV的窗口&#xff08;使用cv :: namedWindow&#xff09;在OpenCV窗口中显示图像&#xff08;使用cv :: imshow&#xff09;**说明注意事项最后结果OpenCV 图像加…

汇编语言第五到八章总结

第五章 [BX]和loop 1.内存单元间接表示: [bx] mov dl, [0]; dl ← ((ds)16 0) mov bx, 0 mov dl, [bx]; dl ← ((ds)16 (bx)) 可以使用bx间接访问内存单元。默认&#xff0c;段地址在ds。 2.loop指令 (1) 语法格式 loop 标号 (2) CPU执行指令过程 ① (cx) ← (cx) …

提醒参加北京Tech.Ed2007会议并在九华山庄上网的朋友注意!

今年的会议内容很是精彩&#xff0c;但是所住的九华山庄的网络却出现了一些问题。这在开心就好的博客里也有所提到&#xff0c;我想应该问题类似吧。表现是网络速度非常慢&#xff0c;网页经常需要刷新才能打开。首先给大家看几个截图&#xff1a;我想做安全的朋友应该都很熟悉…

计算一下你的“手指率”

去年&#xff0c;Psytopic发布过《女子赛跑&#xff0c;看无名指长短就能知晓比赛结果》一个由英国伦敦大学医学专家得出的近乎“迷信”的结论&#xff0c;最近又有一项类似的研究结论&#xff1a;通过测算“手指率”&#xff08;digitratio&#xff0c;食指长度除以无名指长度…

Linux的常用命令!

文章目录1. linux常用命令的基本使用2. 目录&#xff08;文件夹&#xff09;常用命令2.1 创建文件夹的命令2.2 删除文件夹的命令&#xff08;谨慎使用&#xff0c;谨慎使用&#xff0c;谨慎使用&#xff09;2.3 修改文件夹的命令改变位置&#xff1a;mv 就路径 新路径&#xff…

性能测试八:jmeter进阶之beanshell

* BeanShell是一种完全符合Java语法规范的脚本语言,并且又拥有自己的一些语法和方法; * BeanShell是一种松散类型的脚本语言(这点和JS类似); * BeanShell是用Java写成的,一个小型的、免费的、可以下载的、嵌入式的Java源代码解释器,具有对象脚本语言特性,非常精简的解释器jar文…

海量数据系统之道

-------------------------------------------------------------------------------------------------------------------------------------------- 今天先到这儿,希望对您在系统架构设计与评估&#xff0c;团队管理, 项目管理, 产品管理 有参考作用 , 您可能感兴趣的文章: …

char与varchar的区别

Varchar 对每个英文(ASCII)字符都占用2个字节&#xff0c;对一个汉字也只占用两个字节 char 对英文(ASCII)字符占用1个字节&#xff0c;对一个汉字占用2个字节 Varchar 的类型不以空格填满&#xff0c;比如varchar(100)&#xff0c;但它的值只是"qian",则它的值就是&…

Print Model SQL

凭证模块INSERT INTO RDOCSELECT *FROM db001.dbo.RDOCWHERE (DocCode JDT20024)goINSERT INTO RITMSELECT *FROM db001.dbo.RITMWHERE (DocCode JDT20024)go记得修改相应的表明和doccode(打印格式的编号,打开打印格式属性就可以看到了)模板名称保存在RDOC表中&#xff0c;而…

Python3模块Crypto改为pycryptodome

安装&#xff1a; # 安装方式1&#xff1a; pip3 install pycryptodome# 安装方式2&#xff1a; pip3 install -i https://pypi.douban.com/simple pycryptodome from Crypto.PublicKey import RSA from Crypto.Signature import PKCS1_v1_5 from Crypto.Hash import SHA256 转…

反射调用索引器

反射一个类型中的成员,可得到如、、 或 等信息,这些对象从字面上看似乎很难发现有跟索引器对得上的.但是仔细分析索引器的本质,其实索引器是被归类为属性的,即可以通过 Code1 Type genericType typeof(Dictionary<,>); 2 3 Type dictionaryType genericType…

VM虚拟机报错:An error occurred during the file system check.

VM虚拟机开机时遇到以下错误: 问题原因&#xff1a;在上一次VM虚拟机关机后&#xff0c;移除了某个硬件设备&#xff0c;但是在上一次开机时已经设置了永久挂载&#xff0c;没有在配置文件中将被移除的硬件设备信息删除掉&#xff0c;所以在下一次虚拟机启动时&#xff0c;找不…

sqlserver 2014使用时有Cannot find one or more components

好久没用sqlserver&#xff0c;今天打开却出现了一个错误,Cannot find one or more components&#xff0c;令人头疼。在启动Microsoft SQL Server Management Studio时,出现上面的错误提示,程序无法启动.在网搜了一下,发现遇到这样错误的人也不少,但是给出的大部分办法是删除注…

linux下的重要服务dns

首先谢谢版主帮我解决了图片上传问题,要不然这篇文章还真没办法做,呵呵.上一篇己较详细的讲解了LINUX下的DNS配置。因为LINUX下的DNS配置还是有点麻烦的&#xff0c;虽说前面讲那么多&#xff0c;但还是有些没提到的地方&#xff0c;下面将我自己配置的DNS拿出来跟大家一起分享…

MapReduce编程初体验

需求&#xff1a;在给定的文本文件中统计输出每一个单词出现的总次数 第一步&#xff1a; 准备一个aaa.txt文本文档 第二步&#xff1a; 在文本文档中随便写入一些测试数据&#xff0c;这里我写入的是 hello,world,hadoop hello,hive,sqoop,flume kitty,tom,jerry,world hadoo…