redis学习笔记(14)—redis基本命令总结

redis学习笔记(14)—redis基本命令总结

http://doc.redisfans.com/ 网页,对所有redis命令的用法与示例进行了详细的描述

概述

Redis的键值可以使用物种数据类型:字符串,散列表,列表,集合,有序集合。本文详细介绍这五种数据类型的使用方法。本文命令介绍部分只是列举了基本的命令,至于具体的使用示例,可以参考Redis官方文档:Redis命令大全

字符串类型

字符串是Redis中最基本的数据类型,它能够存储任何类型的字符串,包含二进制数据。可以用于存储邮箱,JSON化的对象,甚至是一张图片,一个字符串允许存储的最大容量为512MB。字符串是其他四种类型的基础,与其他几种类型的区别从本质上来说只是组织字符串的方式不同而已。

基本命令

字符串操作

  1. SET 赋值,用法: SET key value
  2. GET 取值,用法: GET key
  3. 注意先设置键key的值再进行下面的增减
  4. INCR 递增数字,仅仅对数字类型的键有用,相当于Java的i++运算,用法: INCR key
  5. INCRBY 增加指定的数字,仅仅对数字类型的键有用,相当于Java的i+=3,用法:INCRBY key increment,意思是key自增increment,increment可以为负数,表示减少。
  6. DECR 递减数字,仅仅对数字类型的键有用,相当于Java的i–,用法:DECR key
  7. DECRBY 减少指定的数字,仅仅对数字类型的键有用,相当于Java的i-=3,用法:DECRBY key decrement,意思是key自减decrement,decrement可以为正数,表示增加。
  8. INCRBYFLOAT 增加指定浮点数,仅仅对数字类型的键有用,用法:INCRBYFLOAT key increment
  9. APPEND 向尾部追加值,相当于Java中的”hello”.append(“ world”),用法:APPEND key value
  10. STRLEN 获取字符串长度,用法:STRLEN key
  11. MSET 同时设置多个key的值,用法:MSET key1 value1 [key2 value2 ...]
  12. MGET 同时获取多个key的值,用法:MGET key1 [key2 ...]
  13. redis学习笔记(14)---redis基本命令总结

位操作

  1. GETBIT 获取一个键值的二进制位的指定位置的值(0/1),用法:GETBIT key offset
  2. SETBIT 设置一个键值的二进制位的指定位置的值(0/1),用法:SETBIT key offset value
  3. BITCOUNT 获取一个键值的一个范围内的二进制表示的1的个数,用法:BITCOUNT key [start end]
  4. BITOP 该命令可以对多个字符串类型键进行位运算,并将结果存储到指定的键中,BITOP支持的运算包含:OR,AND,XOR,NOT,用法:BITOP OP desKey key1 key2
  5. BITPOS 获取指定键的第一个位值为0或者1的位置,用法:BITPOS key 0/1 [start, end]

散列类型

散列类型相当于Java中的HashMap,他的值是一个字典,保存很多key,value对,每对key,value的值个键都是字符串类型,换句话说,散列类型不能嵌套其他数据类型。一个散列类型键最多可以包含2的32次方-1个字段。

基本命令

  1. HSET 赋值,用法:HSET key field value
  2. HMSET 一次赋值多个字段,用法:HMSET key field1 value1 [field2 values]
  3. HGET 取值,用法:HSET key field
  4. HMGET 一次取多个字段的值,用法:HMSET key field1 [field2]
  5. HGETALL 一次取所有字段的值,用法:HGETALL key
  6. HEXISTS 判断字段是否存在,用法:HEXISTS key field
  7. HSETNX 当字段不存在时赋值,用法:HSETNX key field value
  8. HINCRBY 增加数字,仅对数字类型的值有用,用法:HINCRBY key field increment
  9. HDEL 删除字段,用法:HDEL key field
  10. HKEYS 获取所有字段名,用法:HKEYS key
  11. HVALS 获取所有字段值,用法:HVALS key
  12. HLEN 获取字段数量,用法:HLEN key

列表类型

列表类型(list)用于存储一个有序的字符串列表,常用的操作是向队列两端添加元素或者获得列表的某一片段。列表内部使用的是双向链表(double linked list)实现的,所以向列表两端添加元素的时间复杂度是O(1),获取越接近列表两端的元素的速度越快。但是缺点是使用列表通过索引访问元素的效率太低(需要从端点开始遍历元素)。所以列表的使用场景一般如:朋友圈新鲜事,只关心最新的一些内容。借助列表类型,Redis还可以作为消息队列使用。

基本命令

  1. LPUSH 向列表左端添加元素,用法:LPUSH key value
  2. RPUSH 向列表右端添加元素,用法:RPUSH key value
  3. LPOP 从列表左端弹出元素,用法:LPOP key
  4. RPOP 从列表右端弹出元素,用法:RPOP key
  5. LLEN 获取列表中元素个数,用法:LLEN key
  6. LRANGE 获取列表中某一片段的元素,用法:LRANGE key start stop,index从0开始,-1表示最后一个元素
  7. LREM 删除列表中指定的值,用法:LREM key count value,删除列表中前count个值为value的元素,当count>0时从左边开始数,count<0时从右边开始数,count=0时会删除所有值为value的元素
  8. LINDEX 获取指定索引的元素值,用法:LINDEX key index
  9. LSET 设置指定索引的元素值,用法:LSET key index value
  10. LTRIM 只保留列表指定片段,用法:LTRIM key start stop,包含start和stop
  11. LINSERT 像列表中插入元素,用法:LINSERT key BEFORE|AFTER privot value,从左边开始寻找值为privot的第一个元素,然后根据第二个参数是BEFORE还是AFTER决定在该元素的前面还是后面插入value
  12. RPOPLPUSH 将元素从一个列表转义到另一个列表,用法:RPOPLPUSH source destination

集合类型

集合在概念在高中课本就学过,集合中每个元素都是不同的,集合中的元素个数最多为2的32次方-1个,集合中的元素师没有顺序的。

基本命令

  1. SADD 添加元素,用法:SADD key value1 [value2 value3 ...]
  2. SREM 删除元素,用法:SREM key value2 [value2 value3 ...]
  3. SMEMBERS 获得集合中所有元素,用法:SMEMBERS key
  4. SISMEMBER 判断元素是否在集合中,用法:SISMEMBER key value
  5. SDIFF 对集合做差集运算,用法:SDIFF key1 key2 [key3 ...],先计算key1和key2的差集,然后再用结果与key3做差集
  6. SINTER 对集合做交集运算,用法:SINTER key1 key2 [key3 ...]
  7. SUNION 对集合做并集运算,用法:SUNION key1 key2 [key3 ...]
  8. SCARD 获得集合中元素的个数,用法:SCARD key
  9. SDIFFSTORE 对集合做差集并将结果存储,用法:SDIFFSTORE destination key1 key2 [key3 ...]
  10. SINTERSTORE 对集合做交集运算并将结果存储,用法:SINTERSTORE destination key1 key2 [key3 ...]
  11. SUNIONSTORE 对集合做并集运算并将结果存储,用法:SUNIONSTORE destination key1 key2 [key3 ...]
  12. SRANDMEMBER 随机获取集合中的元素,用法:SRANDMEMBER key [count],当count>0时,会随机中集合中获取count个不重复的元素,当count<0时,随机中集合中获取|count|和可能重复的元素。
  13. SPOP 从集合中随机弹出一个元素,用法:SPOP key

有序集合类型

有序集合类型与集合类型的区别就是他是有序的。有序集合是在集合的基础上为每一个元素关联一个分数,这就让有序集合不仅支持插入,删除,判断元素是否存在等操作外,还支持获取分数最高/最低的前N个元素。有序集合中的每个元素是不同的,但是分数却可以相同。有序集合使用散列表和跳跃表实现,即使读取位于中间部分的数据也很快,时间复杂度为O(log(N)),有序集合比列表更费内存。

基本命令

    1. ZADD 添加元素,用法:ZADD key score1 value1 [score2 value2 score3 value3 ...]
    2. ZSCORE 获取元素的分数,用法:ZSCORE key value
    3. ZRANGE 获取排名在某个范围的元素,用法:ZRANGE key start stop [WITHSCORE],按照元素从小到大的顺序排序,从0开始编号,包含start和stop对应的元素,WITHSCORE选项表示是否返回元素分数
    4. ZREVRANGE 获取排名在某个范围的元素,用法:ZREVRANGE key start stop [WITHSCORE],和上一个命令用法一样,只是这个倒序排序的。
    5. ZRANGEBYSCORE 获取指定分数范围内的元素,用法:ZRANGEBYSCORE key min max,包含min和max,(min表示不包含min,(max表示不包含max,+inf表示无穷大
    6. ZINCRBY 增加某个元素的分数,用法:ZINCRBY key increment value
    7. ZCARD 获取集合中元素的个数,用法:ZCARD key
    8. ZCOUNT 获取指定分数范围内的元素个数,用法:ZCOUNT key min max,min和max的用法和5中的一样
    9. ZREM 删除一个或多个元素,用法:ZREM key value1 [value2 ...]
    10. ZREMRANGEBYRANK 按照排名范围删除元素,用法:ZREMRANGEBYRANK key start stop
    11. ZREMRANGEBYSCORE 按照分数范围删除元素,用法:ZREMRANGEBYSCORE key min max,min和max的用法和4中的一样
    12. ZRANK 获取正序排序的元素的排名,用法:ZRANK key value
    13. ZREVRANK 获取逆序排序的元素的排名,用法:ZREVRANK key value
    14. ZINTERSTORE 计算有序集合的交集并存储结果,用法:ZINTERSTORE destination numbers key1 key2 [key3 key4 ...] WEIGHTS weight1 weight2 [weight3 weight4 ...] AGGREGATE SUM | MIN | MAX,numbers表示参加运算的集合个数,weight表示权重,aggregate表示结果取值
    15. ZUNIONSTORE 计算有序几个的并集并存储结果,用法和14一样,不再赘述。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/113835.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • AngularJS简介

    AngularJS简介AngularJS简介AngularJS是一个JavaScript矿建,他是一个JavaSscript编写的库。可以通过&lt;script&gt;标签添加到HTML页面。AngularJS是通过指令扩展了HTML,且通过表达式绑定数据到HTML。地址:&lt;scriptsrc="http://apps.bdimg.com/libs/angular.js/1.4.6/angul…

    2022年7月25日
  • 计算机病毒有哪几种,计算机病毒有哪几种

    计算机病毒有哪几种,计算机病毒有哪几种前言计算机病毒,也叫电脑病毒。它的种类很多。一旦感染这些病毒,轻则软件无法打开或文件被加密等;重则可能会使系统崩溃导致电脑无法正常启动,而电脑之所以会中病毒,主要是以下原因:1.用户在电脑安全方面做得不够严谨2.用户下载或打开了不明文件或链接3.未安装杀软以下是病毒及病毒的特征和解决方法。(1)JJY.exe:特征:此文件一旦打开,首先这个文件会启动它的动画,然后重启。重启之后你会发现你的…

    2022年5月3日
  • 功率放大器电路设计「建议收藏」

    功率放大器电路设计「建议收藏」一、实验目的掌握功率放大器的设计方法。了解功率放大器的测试方法。二、实验内容及结果实验内容自主设计一低频功率放大器,满足如下要求:(1)输入正弦信号电压有效值为5mV,在8Ω电阻负载(一端接地)上,输出功率大于1W,输出波形无明显失真;(2)通频带为20Hz~20kHz;(3)输入电阻为600Ω。实验具体要求如下:(1)设计电路,利用Multisim软件绘制电路原理图。(2)阐述功率放大原理。(3)在输入信号有效值为5mV下,测量负载电压有效值,计算实际输出功率,验证是否满

    2022年6月6日
  • hadoop namenode的功能

    hadoop namenode的功能hadoop namenode的功能

    2022年4月23日
  • 隐马尔可夫模型_基于hmm模型外汇预测

    隐马尔可夫模型_基于hmm模型外汇预测隐马尔科夫模型,HiddenMarcovModel,是可用于标注问题的统计学习模型,描述由隐藏的马尔科夫链随机生成观测序列的过程,属于生成模型,是一种比较重要的机器学习方法,在语音识别等领域有重要的应用。 本文不打算使用书面的一大堆公式来说明,本人对公式无感,能用例子说明的根本不想碰公式,不知道是不是霍金说过,多加一条公式就会损失一大片读者。PS:不管有没有说过了,是这个意思,what

    2022年9月30日
  • ExtJS学习———–Ext.Array,ExtJS对javascript中的Array的扩展

    ExtJS学习———–Ext.Array,ExtJS对javascript中的Array的扩展

    2022年1月22日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号