首先说明下,Redis是:单线程+多路IO复用技术!!!

       string

       set

 》  key  +   zset

              list

       hash

       

常用的几个命令:

  》keys *  查询当前库所有的key

  》exists <key> 判断某个键是否存在,存在返回1,不存在返回0

  》type <key>    返回键的类型

  》del <key>      删除指定的键和值

  》expire <key> <seconds>  为键设置过期时间,单位秒。   例子,手机验证码90秒过期。

  》ttl <key>    查看还有多少秒过期,-1表示永不过期,-2表示已经过期。

  》dbsize    查看当前库键的数量。

  》flushdb      清空当前库,谨慎操作,一般不用。

  》flushall    清空所有库 

String类型

  》redis最基本的数据类型,一个key对应一个value。

  》string是二进制安全的,所以可以存放任何数据,例如图片、序列化的对象。

  》字符串value最多是512MB。

  相关命令

    保存数据  set   key  value

    获取数据  get  key

          mget   <key1>  <key2>  <key3> ...

          getrange <key>  起始值   结束值      获取value的起始值到结束的值。类似于字符串截取操作。

    追加数据  append  <key>  <value>    将value追加到,原先的value后

    获取值长度    strlen  <key>                     根据key获取值的长度

    设置    setnx  <key>  <value>  其实就是 set  not exists  设置值,当key不存在时;如果key存在则不起作用

          mset   <key1>  <value1>  <key2>  <value2>  ....    可以同时设置多对键值对。

          msetnx  <key1> <value1> <key2> <value2> .....    当且仅当所有给定的key都不存在时,设置成功。

          setrange <key>  <起始位置> <value>             把新的value值写入,从起始位置开始写。

          setex <key> <过期时间> <value>          设置键的同时,设置过期时间,单位秒。

          getset  <key>  <value>   设新值的同时,获取旧值。

    数值操作  incr <key>         将key中存储的数值加1;value只能是数值;如果值为空,则置为1   此时步长默认为1.

          decr <key>     将key中存储的数值减1;value只能是数值;如果值为空,则置为-1

          incrby/decrby  <key>  <步长>   按照指定的步长,增加减少。             

set数据类型(可以去重,无序集合;底层是value是null的hash表,所以增加、删除、查找的时间复杂度都是O(1))

  sadd <key>  <value1> <value2> ....  将一个或多个值加入到集合key中,已经存在于集合的值将被忽略。

  smebers <key>    取出该集合的所有值。

  sismember <key> <value>      判断集合key知否含有该value,有则返回1,无则返回0.

  scard  <key>   返回集合元素个数。

  srem <key> <value1> <value2> ..   删除集合元素

  spop <key>  从集合中随机取一个元素。

  srandmember <key> <n>  随机从该集合取出n个值。

  sinter <k1> <k2>    返回两个集合的交集。

  sunion <key1><key2>  返回两个集合的的并集。

  sdiff <key1> <kwy2>     返回两个集合的差集。

list数据类型(单键多值,有顺序;底层实际是双向链表)

  lpush/rpush <key> <value1> <value2>.....    从左边或者右边添加多个值。

  lpop/rpop <key>   从左边或右边吐出值;值在键在,值光键亡

  rpoplpush <key1> <key2>   从<key1>列表右边吐出一个值,插到<key2>列表左边

  lrange <key> <start> <stop>  按照索引下标获得元素(从左到右)

  lindex <key> <index>        按照下标获取元素(从左到右)

  llen <key>  获得列表的长度

  linsert <key> before <value> <newvalue>  在指定的<value>后面插入<newvalue>

  lrem <key> <n> <value>  从左边删除n个value.

hash数据类型(hash是一个键值对集合;类似于java里的Map<String,Object>)

  hset <key> <filed> <value>       给key集合中的<filed>键赋值<value>

  hget <key> <filed>    从key集合中取出键为<filed> 的值

  hmset <key> <filed1> <value1> <filed2><vlaue2>...批量设置hash值

  hexists key <filed>   判断指定的key中是否存在filed.

  hkeys key 列出该key对应的hash集合所有的filed

  hvals <key> 列出该hash集合的所有的value

  hincrby key filed increment  为哈希表 key 中的域 field 的值加上增量 increment 

  hsetnx key filed value 将哈希表 key 中的域 field 的值设置为 value ,当且仅当域 field 不存在

zset数据类型

  Redis有序集合zset与普通集合set非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每个成员都关联了一个评分(score) ,这个评分(score)被用来按照从最低分到最高分的方式排序集合中的成员。集合的成员是唯一的,但是评分可以是重复了 。

  zadd  <key> <score1> <value1>  <score2> <value2>...

    将一个或多个 member 元素及其 score 值加入到有序集 key 当中

  zrange <key>  <start> <stop>  [WITHSCORES]

    返回有序集 key 中,下标在<start> <stop>之间的元素

    带WITHSCORES,可以让分数一起和值返回到结果集。

  zrangebyscore key min max [withscores] [limit offset count]

    返回有序集 key 中,所有 score 值介于 min 和 max 之间(包括等于 min 或 max )的成员。有序集成员按 score 值递增(从小到大)次序排列

  zrevrangebyscore key max min [withscores] [limit offset count]

    同上,改为从大到小排列

  zincrby <key> <increment> <value>

    为元素的score加上增量

  zrem  <key>  <value>

    删除该集合下,指定值的元素

  zcount <key>  <min>  <max>

    统计该集合,分数区间内的元素个数

   zrank <key>  <value>

    返回该值在集合中的排名,从0开始

Redis五大数据类型的更多相关文章

  1. Redis五大数据类型的常用操作

    在上一篇博文<centos安装redis>中,已经详细介绍了如何在centos上安装redis,今天主要介绍下Redis五大数据类型及其五大数据类型的相关操作. Redis支持五种数据类型 ...

  2. 一文搞定Redis五大数据类型及应用场景

    本文学习知识点 redis五大数据类型数据类型:string.hash.list.set.sorted_set 五大类型各自的应用场景 @TOC 1. string类型 1-1 string类型数据的 ...

  3. redis 五大数据类型使用

    redis 五大数据类型使用 字符串str 单个值 127.0.0.1:6379> set name pp # 设置键值[O(1)] OK 127.0.0.1:6379> setex na ...

  4. 《Redis入门指南(第二版)》读书思考总结之Redis五大数据类型

    热身:系统级命令 1. 获得符合规则的键名列表 KEYS pattern 模式匹配 产品的缓存:product+"."+....;  => keys product* 订单的 ...

  5. Redis五大数据类型详解

    关于Redis的五大数据类型,它们分别为:String.List.Hash.Set.SortSet.本文将会从它的底层数据结构.常用操作命令.一些特点和实际应用这几个方面进行解析.对于数据结构的解析, ...

  6. redis五大数据类型以及常用操作命令

    Redis的五大数据类型 String(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value.string类型是二进制安全的.意 ...

  7. 四:Redis五大数据类型

    Redis的五大数据类型 1.string(字符串) string是Redis最基本的类型,你可以理解成与menmcached一模一样的类型,一个key对应一个value string类型是二进制安全 ...

  8. redis 五大数据类型之string篇

    一: 1:string(字符串) string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value. string类型是二进制安全的.意思是redis ...

  9. 细谈Redis五大数据类型

    文章原创于公众号:程序猿周先森.本平台不定时更新,喜欢我的文章,欢迎关注我的微信公众号. 上一篇文章有提到,Redis中使用最频繁的有5种数据类型:String.List.Hash.Set.SortS ...

随机推荐

  1. Linux中运行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory。

    在Linux中运行.sh脚本,异常/bin/sh^M: bad interpreter: No such file or directory. 分析:这是不同系统编码格式引起的:在windows系统中 ...

  2. python入门学习:4.if语句

    python入门学习:4.if语句 关键点:判断 4.1 一个简单的测试4.2 条件测试4.3 if语句 4.1 一个简单的测试   if语句基本格式如下,注意不要漏了冒号 1if 条件 :2     ...

  3. (2)esp8266多国语言翻译系统

    http://bbs.mydigit.cn/simple/?t2649513.html 这个想法不错 原来只是想用esp8266搞一个百度的多国语言翻译系统出来的,只是为了尝试如何调用各种web ap ...

  4. (四)surging 微服务框架使用系列之网关 转载

    一.什么是API网关 API网关是一个服务器,是系统对外的唯一入口.API网关封装了系统内部架构,为每个客户端提供一个定制的API.API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入 ...

  5. Windows下,gVim编辑,Python2应用程序的乱码问题

    Windows,Python2环境下,当gVim配置了 set fileencoding=utf-8,则新建文件编码方式为utf-8. ○   如果代码不包含中文,或者仅包含中文注释,则utf-8编码 ...

  6. 【转】配置不当引起高危漏洞?看加密货币交易所如何正确用Spring Boot Actuaotr框架

    https://xz.aliyun.com/t/2233 SpringBoot应用监控Actuator使用的安全隐患 概述 微服务作为一项在云中部署应用和服务的新技术是当下比较热门话题,而微服务的特点 ...

  7. JVM深度解析

    JVM是Java Virtual Machine(Java虚拟机)的缩写,JVM是一种用于计算设备的规范,它是一个虚构出来的计算机,是通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java语言的 ...

  8. 在IDEA中构建Tomcat项目流程

    在IDEA中构建Web项目流程 打开你的IDEA,跟着我走! 第一步:新建项目 第二步:找到Artifacts 点击绿色的+号,如图所示,点一下 这一步很关键,目的是设置输出格式为war包,如果你的项 ...

  9. OO最后一次作业

    终于开始最后一次作业了,是时候为这学期oo画一个圆满的局句号了. 回首这学期的OO经历,一路走来,经过了开始对面向对象的初步接触,然后就是充满痛苦回忆的多线程,接下来到了令人焦头烂额的规格设计,最后是 ...

  10. 修改docker0默认IP地址

    第一步:vim /etc/docker/daemon.json { "registry-mirrors": ["https://docker.mirrors.ustc.e ...