redis 类型、方法

之前使用redis,现在对所有redis方法做一个总结;

string类型

  形式:key=>value;

  说明:最简单的类型;一个key对应一个value,value保存的类型是二进制安全的,string可以包含任何数据,比如图片或者序列换的对象

  方法:

    set:设置key对应的值为string类型的value;如果存在则修改,否则添加;返回ok

set name aaa

    setnx:设置key对应的值为string类型的value;如果存在,失败返回0,不存在则添加,成功返回value;nx为not exists 的意思

setnx name aaa

    setex:设置key对应的值为string类型的value;并指定此建对应的有效期;成功返回ok;

setex name 10 aaa //设置名字为aaa并且有效期有10秒

    setrange:设置指定key的value值的子字符串;替换

setrange name 2 aaa //设置name从第二个下标开始替换后面的三个子字符串为aaa;返回修改后的字符串长度

    mset:一次性设置多个key的值,成功返回ok表示所有值都设置了,失败返回0表示没有任何值被设置;

mset name1 aaa1 name2 aaa2 //设置name1为aaa1,name2为aaa2

    msetnx:一次性设置多个key的值,成功返回OK表示所有值被设置了,失败返回0表示没有值被设置了;不会覆盖已经存在的key

msetnx name4 aaa4 name5 aaa5 //设置name4为aaa4,name5为aaa5 如果其中一个存在则返回0,不改变任何;成功返回1

    getset:设置key的值,并且返回一个key的旧值,旧值不存在则返回空,新增一个新值;

getset name5 aaa5    //设置name5的值为aaa5 并返回name5的旧值,不存在则返回nil

    getrange:获取key对应的string的子字符串;有则返回子字符串,没有则返回空字符串

getrange name5 0 2 //返回key为name5的字符串中下表0到2的子字符串

     get:获取key对应的value值

get name5

    mget:批量获取值

mget name1 name2 name3 name4 //返回name1,name2,name3,name4的值,不存在则返回nil

    incr:对key的值进行递增操作,返回新的值

incr name6 //对name6的值进行递增,如果值为字符串则会报错,成功返回自增后的值

    incrby:对key的值增加或减少指定值的操作

incrby name6 12    //对name6的值加12返回新值
incrby name6 -12  //对name6的值减12 返回新值

    decr\decrby同上

    append:给指定key的值追加value;返回新的字符串长度

append name5 bbb    //给key为name5的值追加bbb

    strlen:返回指定key的value长度

strlen name5    //返回name5的value长度

 

hashes类型

  形式:key:field value field value

  说明:string类型field和value的映射表,适合于存储对象,类似与表,ID可以连接在key后面;

  方法:

    hset:设置hash field为指定值,如果key不存在则创建,成功返回1,失败返回0

hset myhash field1 value1 field2 value2 //创建一个key为myhash的fied1为value1 field2为value2的hash类型数据

    hget:获得指定key中指定属性的值

hget myhash field1    //获取myhash中属性field1的值

    hsetnx:设置hash field为指定值,如果key不存在,则先创建,如果存在返回失败0

hsetnx myhash title aaa    //添加myhash中title的值为aaa

    hmset:批量设置hash中的过个field

hmset myhash field1 value1 field2 value2 field3 value3

     hincrby:指定hash field 加上指定值

hincrby myhash field value

    hexists:判断指定hash中字段是否存在

hexists myhash field

    hlen:指定hash中field的数量

hlen myhash

    hdel:删除指定hash中的field

hdel myhash field

    hkeys:获取指定hash中所有的field

hkeys myhash

    hvals:获取指定hash中所有的value

hvals myhash

    hgetall:获取指定hash中所有的field 和 value

hgetall myhash

 list类型

  格式:mylist:key1=>value1 key2=>value2

  说明:list是一个链表结构,主要功能是push、pop、获取一段范围内的所有值等等;操作中key理解为链表的名字;,链表既可以做栈也可以做队列

  方法:

    lpush:向头部添加元素;成功返回添加后的数量;可以同事添加多个元素

 

lpush mylist value    //向mylist头部添加 value

 

    lpop:从头部弹出一个元素;成功返回第一个元素;失败返回nil

lpop mylist    //从mylist头部弹出第一个元素,并删除

    lrange:获取list中两个下表中的所有值;

lrange mylist 0 -1    //返回mylist中所有的值

    rpush:从尾部添加一个元素;可同时添加多个;返回添加后的长度

rpush mylist aaa bbb    //向mylist尾部最加两个元素 

    rpop:从尾部弹出一个元素;

rpop mylist //从mylist尾部弹出一个值,并删除最后一个

    linsert:向列表中间插入一个;返回添加后的长度

linsert mylist before "aaa" "bbb"    //在mylist中向aaa前面插入bbb

    lset:修改指定list指定下标的元素值;成功返回OK;

lset mylist index value    //将mylist中下标为index的值替换为value

    lrem:从指定list中删除和指定值相同的值;返回影响的行数

lrem mylist count value    //从mylist中删除count个和value中相同的值;返回影响的行数;

    ltrim:在指定list中保留指定下标内的元素;成功返回ok

ltrim mylist start end    //保留mylist中从start到end下标的元素

    rpoplpush:从第一个list尾部弹出一个元素添加到第二个元素头部

rpoplpush mylist1 mylist2    从第一个list尾部弹出一个添加到mylist2头部

     lindex:返回指定list中指定下标的值;

lindex mylist index    //返回mylist中下标index的值

    llen:返回list的长度

llen mylist    //获取mylist中元素的长度

set集合

  格式:myset:value1 value2 value2

  说明:set是string类型的无序集合,set是通过hash table实现的,对于集合可以去并集、交集、差集,可以实现类似好友推荐的功能;

  方法:

    sadd:向指定集合中添加元素;集合中不允许有重复的值

sadd myset value    //向myset集合中添加value元素

    smembers:查看指定集合中的元素

smembers myset    //查看myset中的元素

    srem:删除集合中的成员

srem myset value    //删除集合中value成员

    spop:从集合中随机弹出删除指定个数的元素,默认为1;返回被删除的元素

spop myset1 2    //随机弹出并删除两个元素

    sdiff:返回两个集合的差集,以第一为主,就是第一个集合中有第二个集合中没有的返回,第一个集合没有第二个集合有则不返回

sdiff myset1 myset2    // 返回myset1和myset2中的差集;以myset1为主

    sdiffstore:以第二个为主,与后面的集合比较取差集,存入第一个集合中,如果第一个中本来就有值,则先清空在插入

sdiffstore myset1 myset2 myset3    //以myset2为主将myset2和myset3的差集存入myset1中

    sinter:返回n个集合的交集

sinter myset1 myset2    //返回myset1和myset2的交集

    sinterstore:将第二个和后面的取交接,存入第一个结合中

sinterstore myset1 myset2 myset3    //将myset2 myset3的交集存入myset1中

     unision:取n个集合的交集

unsion myset1 myset2    //取myset1和myset2的交集

    unisionstore:将第二个和后面的集合取交集,存入第一个集合中

unisonstore myset1 myset2 myset3 //将myset2 myset3取交集存入myset1中

    smove:将第一个集合中的元素移到第二个集合中,只可以移动一个s

smove myset1 myset2 value     //将myset1中的value移到myset2中

    scard:返回集合中元素的个数

scard myset1    //获取myset1中的元素的个数

     sismember:判断集合中是否存在该元素;存在返回true,不存在返回false;

sismember myset1 value    //判断myset1中是否存在value

    srandmember:随机返回指定个数的元素;但不删除;

srandmember myset1 count    //随机返回myset中count个元素,但不删除

sorted set 有序集合

  格式:storeset:value store

  说明:stored set是有序集合,无需集合的升级版;在set基础上添加了一个数序属性,该属性在添加的时候可以指定;每次在zset集合添加设置后,集合会自动按照书序排序  

  方法:

    zadd:向有序结合中添加元素和顺序,当添加同样顺序的不同值时,相同顺序不同值会按照插入顺序排序,最先插入的在上面,当插入的元素已经存在则失败;就是排序不唯一,值已定唯一;

zadd myzset order value    //向myzset中添加value元素 排序是order

    zrange:查看有序列表中的元素;可指定加上顺序;withsorces

orange myzset 0 -1 withscores //返回myzset集合中所有排序和元素,按照排序返回

    zrem:删除有序集合中的指定值

zrem myzset value    //删除myzset中值为value的元素

    zincrby:给制定有序集合中指定值的顺序加或减

zincrby myzset count value    //给myzset有虚表中值为value的顺序加count

     zrank:返回指定有序集合中指定的值在排序中从小到大的位置,及下标;不是顺序 没有则返回nil

zrank myzset value    //返回myzset中value的下标

    zrevrank:返回指定有序集合中指定的值在排序中从大到小排序的位置,及下标;

zrevarank myzset value     //返回myzset 从大到小排序中value的下标

    zrevrange:返回从大到小,与zrange顺序相反

zrevrange myzset1 0 -1 withscroes    //返回myzset中所有元素,从大到小

    zrangebyscores:按照排序返回指定顺序内的值

zrangebyscores myzset 1 10 withscores    //返回排序值在1到10包括1、10中的元素

    zcount:返回给定排序值中的元素个数

zcount myzset 1 10    //返回myzset中排序在1到10 包括1、10 的元素的个数

    zcard:返回给定有序集合中所有元素个数

card myzset     //返回myzset 中所有元素个个数

     zremrangebyrank:删除指定有序集合中指定索引区间中的元素;索引区间不是排序

zremrangebyrank myzset 1 4    //删除myzset中索引在1到4的元素

    zremrangebyscore:删除指定有序集合中指定排序区间中的元素;

zremrangebyscore myzset 1 10    //删除myzset中排序在1到10的元素

 

转载于:https://www.cnblogs.com/jackylee92/p/6857717.html

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

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

相关文章

亚马逊首家“无人超市”系统存在bug?!开业当天,记者中途换装成功骗过摄像头...

来源:大数据文摘2018年,亚马逊推出了无人便利店Amazon Go,本着“无需排队、拿完就走”的理念在当时掀起了一番热潮。两年后,亚马逊“无人购物”升级,又在西雅图开设了“Plus版无人超市”Amazon Go Grocery(…

oracle的一些常使用命令,Oracle 经常使用命令小结

项目自动化建构工具gradle 入门3——生一个exe的helloWorld前两次呢,我们能够用一个外部的jar 来实现输出helloWorld.但问题是我每次都要用java -jar 来执行,这样我们自己玩还可以,让用户玩就不好了.所以我们生成一个exe给他们吧.这次我们仍 ...LGLCalender (价格日历…

创新是低情商的人做的

评语:这时一个有趣的思考,不算是正式的研究,但可以算是有价值的科学火花,创新本身或许就是得罪人的事情,或者要推翻别人的观点,引起他人不高兴,或者他人有不同意见,要争论和辩解&…

【12.23】转行小白历险记-算法02

不会算法的小白不是好小白,可恶还有什么可以难倒我这个美女的,不做花瓶第二天! 一、螺旋矩阵 59. 螺旋矩阵 II - 力扣(LeetCode) 1.核心思路:确定循环的路线,左闭右开循环,思路简…

MySQL 5.7.18 解压版安装

原文链接:https://my.oschina.net/u/3474266/blog/895696 我在安装免安装版的5.7.18的时候出现了问题,正好找到这个,十分感激 今天下载安装了MySQL Community Edition 5.7.18压缩版,过程中遇到了一些坑,特地写个博客记…

订单失效怎么做的_?糟了,刚发货的订单竟然被取消掉了?我该怎么办!

“叮叮!您的Newegg国际商城有新订单啦,请及时查看!”又来新订单了,赶紧打包发货!可是三天后……“尊敬的商家您好,您的订单超过72 小时未发货,系统已经自动取消该订单”。什么?订单被…

oracle segment extent block,Oracle的基础问题segment extent block

l extent和segment的关系每个extent 的Oracle block 的数目是由extent的巨细/DB_BLOCK_SIZE 确定的,extent 巨细是由建立或修改segment 的SQL 语句中storage子句中的initial, next, pctincrease等参数确定。每个segment中的extent的数目是一个动态扩展的值, 最大值由建立或修改…

6G概念及愿景白皮书

来源:中国指挥与控制学会“本白皮书将从6G愿景、6G应用场景、6G网络性能指标、6G潜在关键技术、国际组织和各国6G研究进展等方面展开讨论,并提出加快推进我国6G研发的相关建议。”编写 | 赛迪智库无线电管理研究所 执笔 | 彭健 孙美玉 滕学强目录一、前言…

git编译安装与常见问题解决

1. 先去官网下载一个安装包 ,假设目录/APP/ido2. cd /APP/ido3. tar -zxvf git-2.7.2.tar.gz4. 安装依赖yum -y install gcc openssl openssl-devel curl curl-devel unzip perl perl-devel expat expat-devel zlib zlib-devel asciidoc xmlto gettext-devel openss…

如何判断python固定文件存在吗_Python判断文件和文件夹是否存在的方法

这篇文章主要介绍了Python判断文件和文件夹是否存在的方法,本文还讲解了判断是否为文件或者目录的方法、os.path.lexist的作用、FTP中判断文件或目录是否存在等内容,需要的朋友可以参考下一、python判断文件和文件夹是否存在、创建文件夹代码如下:>>> import os>&g…

oracle rman和数据泵,使用RMAN或数据泵初始化OGG目标库

OGG 10引入新token变量LOGCSN,对应于oracle的scn,对此replicat可以指定开始csnStart replicat atcsn | aftercsn准备阶段同步前需确保源库的事务都已提交,应反复检查gv$transaction;对于无法终止的事务,从其起始时间执…

哺乳动物亚种在物种进化中至关重要

查尔斯达尔文的《物种起源》一书来源:科技日报 图片来源:物理学家组织网据物理学家组织网18日报道,查尔斯达尔文逝世约140年后,其进化论的一个理论终获证实!英国剑桥大学科学家在18日出版的《英国皇家学会学报B卷》上撰…

window挂载到linux服务器上,在windows 7操作系统下设置挂载Linux服务器

在Windows 7操作系统下增加了很多有用的功能,只是默认没有开启而已,今天简述下一个Windows 7下的NFS功能,通过这个功能,可以让Windows 7共享Linux下面的磁盘分区或者目录数据,这个功能原理只能通过samba或者ftp来实现&…

Android属性动画完全解析(上),初识属性动画的基本用法

转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/43536355 在手机上去实现一些动画效果算是件比较炫酷的事情,因此Android系统在一开始的时候就给我们提供了两种实现动画效果的方式,逐帧动画(frame-by-frame animation)和补…

两位概率论顶级专家获得2020阿贝尔奖

来源:哆嗒数学网弗斯滕伯格介绍当希勒尔弗斯滕伯格(Hillel Furstenberg) 发表其早期的一篇论文时,有传言说他并非一个人,而是一群数学家的化名。该论文涵盖的思想覆盖诸多领域,真的不可能是一个人的成果吗?虽然这件事可…

python长度单位转化_长度单位的换算教学反思

长度单位的换算教学反思陈双银使学生在认识了长度单位千米、米、分米、厘米、毫米的基础上,能够熟练地掌握长度单位千米、米、分米、厘米、毫米之间的进率,准确地进行单位之间的换算是长度单位这一单元的教学重点和难点。但是,对于这一知识点…

获取时间

var nownew Date();一周前的时间(now.getFullYear()) - (now.getMonth()1) - (now.getDate()); var date new Date(now.getTime() - 7 * 24 * 3600 * 1000); var year date.getFullYear(); var month date.getMonth() 1; var day date.getDate();当前时间year"-…

linux区分用户的权限级别可用,如何限制Linux内核级别的特权用户访问?

我在learning Linux Kernel Programming找到了这个答案,我的问题更具体针对Linux内核的安全功能.我想知道如何限制特权用户或进程对其他进程和文件的访问权限,而不是root的完全访问权限.直到现在我发现:>自由访问控制(DAC)的用户和组,区分读取,写入和执行用户,组…

清华大学计算机系教授:马少平——计算机是如何实现智能的(附直播回放)...

来源:图灵人工智能直播回放长按识别观看回放报告摘要这是一个关于人工智能的科普讲座。人工智能经过六十几年的发展,取得了很大的成果,在很多领域得到了很好的应用。那么人工智能是如何实现的?本讲座将结合一些大家熟知的实例&…

CSS图像绘制之:条纹背景(转)

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title>漂亮的CSS3动画进度条DEMO演示</title><style> html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,big,ci…