HTML5技术

Redis中的数据结构与常用命令 - 雪飞鸿

字号+ 作者:H5之家 来源:H5之家 2017-06-04 11:03 我要评论( )

开发系统:Ubuntu 17.04 Redis驱动:StackExchange.Redis 1.2.3 Redis版本:3.2.1 开发平台:.NET Core 对于Redis的介绍这里只写一句:Redis是一种基于内存的高性能非关系型数据库,它以kye-value的形式来存储数据。 5种数据结构 Redis中包含5种数据类型:ST

 

开发系统:Ubuntu 17.04
Redis驱动:StackExchange.Redis 1.2.3
Redis版本:3.2.1
开发平台:.NET Core

对于Redis的介绍这里只写一句:Redis是一种基于内存的高性能非关系型数据库,它以kye-value的形式来存储数据。

5种数据结构

Redis中包含5种数据类型:STRING、LIST、SET、HASH、ZSET。

Redis中的5中数据结构(截图出自《Redis in Action》):


 

Redis以key-value形式存储数据,其中key与value的关系可分为两种:

  • 1对1
    在Redis的STRING数据结构中,一个key对应一个value。
  • 1对*
    Redis中的其余四种数据结构,一个key可以对应多个value。
  • 为了更直观的说明key和value间的关系,下面用几张图(截图来自《Redis in Action》)来描述Redis中的五种数据结构:

    STRING结构:


     

    LIST结构:


     

    SET结构:


    HASH结构:

     


     

    ZSET结构:


     

    其中:
    SET和ZSET中没有重复元素;
    相比SET,ZSET具有排序功能;
    ZSET和HASH的value也是键值对形式:ZSET(score,member)、HASH(field,value);
    STRING类型中不仅仅是存储字符,也可以存储数值(整数、浮点数);
    5种数据结构最终存储的数据类型实际只有两种:字符和数值,Redis能够区分存储的值是字符还是数字;

    Redis中常用命令

    在redis-cli中对于输入的命令会有智能提示


     

    命令作用

    HELP 获取命令的帮助信息,学会help命令很重要

    DEL 删除key及对应的值

    EXPIRE 设置键的过期时间,过期的键连同与该键相关的数据都将被删除

     

    help命令:

     


     

  • STRING Redis对字符串提供了丰富的操作,在Redis中STRING结构用于存储两种类型的数据:
  • 数值(整数、浮点数)
  • 字符串(byte string)
  • 命令作用

    SET 向指定的key中写入值

    GET 从指定的key中获取值

    INCR 将指定key的值加1

    DECR 将指定key的值减1

    INCRBY 将指定key的值加上指定的数值

    DECRBY 将指定key的值减去指定的数值

    APPEND 向value中追加内容

    GETRANGE GETRANGE key-name start end获取指定索引范围(字符串可看作是字符组成的数组)的字符,当start=0且end=-1时获取整个字符串

    SETRANGE `设置指定偏移量的字符的值

    GETBIT GETBIT key-name offset 将字符串看做是二进制形式(bit string),并返回指定偏移量位置处的二进制位的值

    SETBIT 设置指定偏移量位置处的二进制位的值

    BITCOUNT 返回字符串中二进制位值为1的二进制位数

    BITOP 对字符串执行位运算,并将计算结果存储到指定的key中

    对于BITCOUNT命令,专门写了一段程序进行验证,效果图如下:

    c#代码:

     

     

    redis-cli中执行bitcount命令的结果:

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • 【AngularJS中的自定义服务service VS factory VS provider】---它们的区别,你知道

      【AngularJS中的自定义服务service VS factory VS provider】---它们

      2017-05-08 13:04

    • 记一次企业级爬虫系统升级改造(六):基于Redis实现免费的IP代理池 - 彩色铅笔

      记一次企业级爬虫系统升级改造(六):基于Redis实现免费的IP代理池

      2017-03-21 09:00

    • Session分布式共享 = Session + Redis + Nginx - 傲翼飞寒

      Session分布式共享 = Session + Redis + Nginx - 傲翼飞寒

      2017-03-10 16:00

    • HTML5中的新事件 - zxyGo

      HTML5中的新事件 - zxyGo

      2017-03-10 14:00

    网友点评
    )