zoukankan      html  css  js  c++  java
  • Redis五大数据类型

    首先说明下,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开始

  • 相关阅读:
    学习总结
    HBase简要介绍
    分布式文件系统HDFS
    Hadoop基础安装和使用
    大数据的学习基础
    学习总结
    Python-爬取豆瓣电影信息并存到mysql
    python爬虫回顾与总结
    正则表达式-爬虫获取豆瓣电影超链接
    BeautifulSoup相关学习
  • 原文地址:https://www.cnblogs.com/xingrui/p/10162644.html
Copyright © 2011-2022 走看看