Redis API的使用与理解

一、Redis 基础:

  1、通用命令:

    keys [pattern]:

      keys *  #遍历所有key;keys he*  #以'he'开头的key;

      keys he[a-e]* #以‘he’开头第三个字母是a-e之间;

      keys ph?  #'?'代码一位,以ph开头且字母是三位的key  

    dbsize:计算key的总数

    exists key :检查key是否存在(存在返回1,不存在返回0)

    del key [key...]:删除key(返回执行成功的条数)

    expire key seconds:设置key在seconds秒后过期

    ttl key:查看key剩余的过期时间

    persist key:去掉key的过期时间

    type key :返回key的类型

  2、数据结构:

二、Redis API的使用:

  1、String:

    set key value     设置键值对 

    setnx key value    key不存在才设置

    set key value xx   key存在才设置

    get key         通过key获取value

    mget        批量获取,时间复杂度 o(n)

    mset        批量设置,时间复杂度o(n)

    getset key value   设置新值并返回旧值

    append key value   在原有value上追加值

    strlen key        字符长度 

    keys *         获取所有的key  (支持通配符 :* ? [])

    del key [kel...]    删除键值对

    incr key        对于整数value增加1

    incrby key num    对于整数value增加num

    decr key       对于整数value减少1

    decrby key num   对于整数value减少num

    incrbyfloat key num  对于浮点数value增加num

    getrange key start end   指定显示的位置       

    setrange key offset value  指定位置修改 

  2、Hash:

    hset key field value  将哈希表key中的域field 的值设为value

    hget key field    返回哈希表key中给定域field的值

    hdel key field       删除哈希表key中的fileld的值

    hgetall key      返回哈希表key中,所有的域和值

    hkeys key       返回哈希表key中所有的域

    hmset key field value [field value]  批量设置field-value对到哈希表key中 o(n)

    hmget key field [field]        批量获取key中 field域的值 o(n)

    hexists key field   判断哈希表key中是否有field

    hlen key       获取哈希表key中field的数量 

    hvals key        返回哈希表key对应所有field的value

    hsetnx key field value  设置哈希表key对应field(存在,则失败)的value 

    hincrby key field intCounter    哈希表key对应的field的value增加 intCounter,返回结果

    hincrbyfloat key feild floatCounter  哈希表key对应的field的value增加 floatCounter,返回结果         

  3、List:

    1、lpush key value [value...]    从列表左端插入值(1-N个)

    2、rpush key value [value...]    从列表右端插入值(1-N个)

    3、linsert key before|after value newValue  在列表指定的值前|后插入newValue 

    4、lrem key count value           根据count值,从列表中删除所有value,count大于0从左到右,小于0从右到左,等于0删除所有相等项;例如:lrem key -1 a 从右到左删除 1 个相等的项

    5、ltrim key start end        按照索引范围修剪列表

    6、lrange key start end        获取列表指定索引范围所有item等的项

    7、llen key              返回列表key的长度

    8、lpop key             将列表key最左端的元素弹出

    9、rpop key            将列表key最右端的元素弹出             

    10、lindex key index        获取列表key指定的索引item

    11、lset key index newValue      设置列表key指定索引值为newValue

    12、blpop key timeout        阻塞左弹出,timeout是阻塞超时时间,timeout=0为永远不阻塞             

    13、brpop              阻塞右弹出,timeout是阻塞超时时间,timeout=0为永远不阻塞

  注:根据不同的业务需求有以下建议:

    1、lpush + lpop = stack (以栈的方式存取,后进先出)

    2、lpush + rpop = queue (以队列的方式存取,先进先出)

    3、lpush + ltrim = capped conllection (以固定长度的列表存取)

    4、lpush + brpop = message queue (消息队列) 

  4、Set:

    1、sadd key element        向集合key添加element(如果存在添加失败)

    2、srem key element        将集合key中的element移除

    3、scard key             计算集合大小

    4、sismember key it          判断it是否在集合中

    5、srandmember key count      从集合中随机挑count个元素

    6、spop key             从集合中随机弹出一个元素

    7、smembers key            获取集合所有元素 

    8、sdiff key key [key...]          获取差集

    9、sinter key key  [key...]       获取交集

    10、sunion key key [key...]       获取并集

  5、zSet:

    1、zadd key score element      添加元素     

    2、zrem key element        删除元素

    3、zscore key element        返回元素的score

    4、zincrby key increScore element  增加或减少元素的score

    5、zcard key            返回元素的总个数

    6、zrank key element        返回元素的排名位置(升序)

    7、zrange key start end withscores  返回指定索引范围的升序元素[score]

    8、zrangebyscore key min max withscores   返回指定score范围的升序元素

    9、zcount key min max        返回有序集合内在指定score范围内的个数

    10、zremrangebyrank key start end  删除指定排名内的升序元素

    11、zremrangebyscore key min max  删除指定分数内的升序元素

    12、zrevrank            返回元素的排名位置(降序)      

    13、zrevrange            返回指定索引范围的降序元素[score]

    14、zrevrangebyscore          返回指定score范围的降序元素

    15、zinterstore            交集

    16、zuninstore            并集

转载于:https://www.cnblogs.com/haiyangwu/p/10328254.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/364050.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

点击底部input输入框,弹出的软键盘挡住input(苹果手机使用第三方输入法 )

测试移动端页面的时候,偶然发现点击底部input输入框时,弹出的虚拟键盘偶尔会挡住input输入框。 输入框固定在页面底部,如图所示: input固定底部设计图.png点击底部input输入框唤起软键盘时,软键盘挡住输入框。如图所示…

java采集温湿度水浸_机房水浸传感器:智能生活不可或缺的漏水传感器

原标题:机房水浸传感器:智能生活不可或缺的漏水传感器智能化的飞速发展让人们的生活发生了重大改变,为保证机房的安全、稳定、高效运行,网络设备的良好运行状态和设备使用寿命与安全,通常会对网络运行环境的电力供应、…

创建型模式:原型模式

个人公众号原文:创建型模式:原型模式 五大创建型模式之五:原型模式。 简介 姓名 :原型模式 英文名 :Prototype Pattern 价值观 :效率第一 个人介绍 : Specify the kinds of objects to create u…

我的前端工具集(五)提示工具之模态窗提示

我的前端工具集(五)提示工具之模态窗提示 liuyuhang原创,未经允许禁止转载 目录 我的前端工具集 1、需求 很多页面操作都需要提示,比如操作成功,操作失败之类。 总不能没事就console.log或者alert吧。 所以一个操作提…

Java 8 Friday:可选将保留为Java中的一个选项

在Data Geekery ,我们喜欢Java。 而且,由于我们真的很喜欢jOOQ的流畅的API和查询DSL ,我们对Java 8将为我们的生态系统带来什么感到非常兴奋。 Java 8星期五 每个星期五,我们都会向您展示一些不错的教程风格的Java 8新功能&#…

七天开发记录(3)

今天在网上找到了一个开发记账本微信小程序的网址 我看了一下这个APP的源代码,其用分为两个大包。 转载于:https://www.cnblogs.com/zjl-0217/p/10428525.html

TMS320F28335——IO控制/定时计操作

一、实现GPIO控制 1.硬件连接 从电路原理图上看来,LED灯是接在GPIO34 上的。 2.IO设置 2.1设置功能 GPXMUX1/2:功能选择寄存器   GPXMUX1/2 每组 IO 一般有 32 个 IO 口可以配置。GPXMUX1 对应每组的低 16 个 IO 口,GPXMUX2 对应高 16 个…

比Python、Java更快的 Go 语言,能否称霸江湖?

关注之后加星标,江湖要事早知道 ​ 文章来源:jb51.net 有一种语言堪称比语言排行榜前五热门选手的Python、Java更快,它就是GO语言。 Go于2009年11月正式宣布推出,成为开放源代码项目,并在Linux及Mac OS X平台上进行了实…

嗨,您好 。 。 ! 您如何评价Java / Java EE技能?

要知道,就是要知道你一无所知。 那就是真正知识的含义。 苏格拉底 这篇文章旨在为读者提供Java生态系统及其技术堆栈的快速概述。 老实说,从Java EE 7,Java SE 8到Java Embedded 8…,Java平台进行了许多革命性的更改和添加。 哇…

simulinkveristandlabview联合仿真——模型导入搭建人机界面

目录 1.软件版本 2.搭建simulink仿真模型 编译错误 3.导入veristand并建立工程 4.veristand导入labview labview显示veristand工程数据 labview设置veristand工程数据 运行labview工程 1.软件版本 matlab2020a,veristand2020 R4,labview2020 SP…

Java程序员的典型工作过程有哪些_Java程序员都要经历哪些阶段

原标题:Java程序员都要经历哪些阶段程序员从菜鸟到优秀的过程是需要时间,经验,不断的进阶,小编和大家一起看看每个阶段都要经历哪些成长阵痛:没有防卫这个阶段很快就会过去,因为有无数的书本和”前辈”在提…

关于DataFormWebPart中CreatedModifiedInfo信息的分开使用

以下是问题的描述,我先从数据说起.数据存储在一个叫pages的自定义列表中,该列表除默认的栏外,另增加了一栏"Abstract",为多行文本,用于存储文章摘要信息.当该列表中录入数据后如图: 这时,当我们点列表项如"page2"时,会进入该项的 DispForm.aspx页面.如图:这…

Day47 Django基础部分、路由配置、空间名称

1.最简单的路由配置 URL配置(URLconf)就像Django 所支撑网站的目录。它的本质是URL与要为该URL调用的视图函数之间的映射表;你就是以这种方式告诉Django,对于客户端发来的某个URL调用哪一段逻辑代码对应执行。 1.1 例1: 第一步:在…

6-3 向二分搜索树中添加元素 6-4 改进添加操作:深入理解递归终止条件

二分搜索树添加新元素60, 60>41(根节点)&#xff0c;所以一定要插入到41的右子树。 接着在和58比较 1 public class BST<E extends Comparable<E>> {//对于二分搜索树所存储的内容支持泛型&#xff0c;所以在这里写一个E&#xff0c;此外二分搜索树不是支持所有…

ClassNotFoundException:是否减慢了您的JVM?

大多数Java开发人员都熟悉臭名昭著且非常常见的java.lang.ClassNotFoundException 。 虽然通常已经很好地了解了此问题的根源&#xff08;类路径中缺少类/库&#xff0c;类加载器委派问题等&#xff09;&#xff0c;但对整体JVM和性能的影响通常是未知的。 这种情况可能会对您的…

python可以自动写文章吗_让python来告诉你神奇的操作,如何实现文章自动化

三河讲python首先来告诉大家下面的Python程序实现了通过从网页抓取一篇文章&#xff0c;然后根据这篇文章来生成新的文章&#xff0c;这其中的原理就是基于概率统计的文本分析。过程大概就是网页抓取数据->统计分析->生成新文章。网页抓取数据是通过BeautifulSoup库来抓取…

badboy的录制和jmeter的使用

v Jmeter是什么 Apache Jmeter是Apache组织开发的基于Java的压力测试工具。Jmeter可以用于对服务器、网络或对象模拟巨大的负载&#xff0c;来自不同压力类别下测试它们的强度和分析整体性能。另外&#xff0c;Jmeter能够对应用程序做功能、回归测试&#xff0c;通过创建带有断…

一张图看懂offsetX, clientX, pageX, screenX的区别

1.具体含义见下图1 2.浏览器的兼任情况 更多专业前端知识&#xff0c;请上 【猿2048】www.mk2048.com

接口一个被我忽略的地方--接口重定向技术

习惯于用IDE生成接口方法了,右键点击"Implement Interface",生成所有的接口方法声明,还带个Region多方便啊.今天看<<CLR Vir C#>>时才了解到自己是知其然不知其所有然啊. 实现接口方法很简单,新手估计也都会,但怎么理解这个过程,不见得所有人都知道 Base…

vue 学习之路 —— 图片的引入

问题记录&#xff1a;在img中动态设置了src后&#xff0c;图片路径找不到 原因&#xff1a;vue中动态生成的路径无法被url-loader解析到 解决方法&#xff1a; 1、将图片放在static文件夹&#xff0c;然后正常解析 2、将图片使用import方法引入 3、 采用背景图做法&#xff0c;…