首先说明下,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. How to get Docker

    Docker 通俗的理解就是像VM一样的虚拟技术,但是不完全相同. Docker可以打包为镜像文件,在镜像中运行容器. 镜像和容器可以理解成类和对象的关系. 拿VM虚拟机和docker来举例,一个容器 ...

  2. AJAX方式发送远程请求报错:No 'Access-Control-Allow-Origin' header

    AJAX GET方式发送远程请求,chrome开发者工具console中报错:XMLHttpRequest cannot load http://www.shikezhi.com/ajax/getDa ...

  3. C#高性能二进制序列化

    二进制序列化可以方便快捷的将对象进行持久化或者网络传输,并且体积小.性能高,应用面甚至还要高于json的序列化:开始之前,先来看看dotcore/dotne自带的二进制序列化:C#中对象序列化和反序列 ...

  4. STM32中断优先级彻底讲解

    一.综述      STM32 目前支持的中断共为 84 个(16 个内核+68 个外部), 16 级可编程中断优先级的设置(仅使用中断优先级设置 8bit 中的高 4 位)和16个抢占优先级(因为抢 ...

  5. jenkins+svn安装

    参考资料: http://blog.csdn.net/wuxuehong0306/article/details/50016547 https://www.ibm.com/developerworks ...

  6. Apache Spark 内存管理详解(转载)

    Spark 作为一个基于内存的分布式计算引擎,其内存管理模块在整个系统中扮演着非常重要的角色.理解 Spark 内存管理的基本原理,有助于更好地开发 Spark 应用程序和进行性能调优.本文旨在梳理出 ...

  7. Linux ip netns 命令

    ip netns 命令用来管理 network namespace.它可以创建命名的 network namespace,然后通过名字来引用 network namespace,所以使用起来很方便. ...

  8. ASP.Net Core2.1中的HttpClientFactory系列二:集成Polly处理瞬态故障

    前言:最近,同事在工作中遇到了使用HttpClient,有些请求超时的问题,辅导员让我下去调研一下,HttpClinet的使用方式已经改成了之前博客中提到的方式,问题的原因我已经找到了,就是因为使用了 ...

  9. Docker for .Net Developers(part1:Docker基本概念介绍)

    一.什么是Docker 目前,.Net 社区中很可能会用到的两个词是“微服务”和“Docker”. 这两个主题都非常引人注目,并为开发人员和架构师带来兴奋之情. 在这个新系列的博客文章中,我把自己最近 ...

  10. Omi v1.0震撼发布 - 开放现代的Web组件化框架

    原文链接--https://github.com/AlloyTeam/omi 写在前面 Omi框架经过几十个版本的迭代,越来越简便易用和强大. 经过周末的连续通宵加班加点,Omi v1.0版本终于问世 ...