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

    一、概念:

            Redis:一个开源、支持网络、基于内存、键值对存储数据库。

            特点:它可以支持多种数据类型。 

    二、数据类型

    1)Redis String 

    具体说明:

          一般的普通的k到v一个映射是String到String类型的一个映射,而redis的k到v的映射,其中的Redis可以是任意类型,另外,Redis

    keys是采用二进制序列的。

          特点:

                   Redis 的字符串可以支持任意形式的数据,但是它的单次储存量有限,仅512M字节。

    启动redis-cli来看看Redis strings数据类型。

    $ sudo service redis-server start
    $ sudo su
    $ cd
    $ redis-cli
    $ set mykey somevalue
    $ get mykey

     前三行怎么理解?查看一下linux命令。

    一般set命令下key的不可以相同,但是可以在其后面加参数之后就可以相同。

    1 set mykey somevalue nx
    2 set mykey somevalue xx

    特点2:

               String有加法和减法的功能,incr具有加法具有加法功能,如果加多个则用incrby;类似的还有decr和decrby,这则是减法功能。

    1 >set count 100
    2 >incr count 1
    3 >incr count 1
    4 >incrby count 50
    1 >set count 100
    2 >decr count 1
    3 >decr count 1
    4 >decrby count 50

    自己再测试一次上面的减法。

    1 >mset a 10 b 20 c 40
    2 >mget a b c

    2)List

        key和list列表是相互依存的,当一个空表插入key,则不是空表,反之如果将表删除则key不存在。

    1 >rpush mylist a
    2 >rpush mylist  b
    3 >lpush mylist first
    4 >lrange mylist 0 -1

    push压栈  pop弹栈  range显示

    阻塞操作:

           它有类似java里面的加锁功能,另外由于它的特性,就应用场景而言,容易想到聊天软件的聊天记录。

    3)Redis Hashes

           它是字符串的字段和字符串的值的映射。你可以将其存在很多其他的对象存储在一个Redis实例中。

    1 >hmset user: 1000 username antirez birthyear 1977 verified 1
    2 >hmset user: 1000 username
    3 >hmset user: 1000 birthyear
    4 >hmsetall  user: 1000

     verified 1 是什么意思?
    > hincrby user:1000 birthyear 10

           

    这个hincrby是什么意思?

           hincrby: 返回哈希表key中域的值。

           参看: http://doc.redisfans.com/hash/hincrby.html

    4)无序集合

                  特点:和java里面的集合类似,具有无序性和互异性,所以它对于元素可以去重,并且也可以合并求交集,找出共同元素。

         >sadd myset 1 2 3
    
         >smembers myset

                 sadd命令:产生无序集合,返回集合的元素的个数。

                 smembers命令:用于查看集合的元素。

                 sismember命令:查看集合是否存在,匹配项包含集合名和集合元素。

    5)有序集合

               zadd命令:用于添加元素,另外每个元素有一个权重的概念,并从高到低地排出来,另外它可以看做是一个无重复的列表。

                      作用: 有序的元素,快速的存在性测试,快速访问集合的中间元素!

    1 zadd hackers 1940 "Alan"
    2 zadd hackers 1954 "Blue"
    3 
    4 疑问:hackers 和 1940这两个有什么含义?   百度一下。  zadd

    1 zrange hackers 0 -1
    2 zrevrange hackers 0 -1
    zrange是正序查看 zrevrange是反序查看

    可以返回结果相应的记录参数。

    zrange hackers 0 -1 withscores

    东西不在学多,重在学进去,当然能够多学点更好,但是最好能学透,如果你花了时间和没花时间一样的话,

    则很可惜,就像linux一样,你以前学过,另外,还有java,这个你要注重学习方法,另外也要注意方法。

    学完之后要用脑袋总结一下,然后根据脑袋里面的东西进行写博客,你会学得更透,温故知新。

    成年人的世界没有那么多的童话,也没有那么多的逆袭。
  • 相关阅读:
    poj2186强连通分量
    poj1459SAP最大流模板题
    poj2391Floyd+二分+最大流
    curl上传下载入门
    Mysql存储过程
    小球旋转
    钟表单摆
    java小记 摘抄
    servlet的一些收集总结
    Javascript基础小结
  • 原文地址:https://www.cnblogs.com/shijinglu2018/p/10828931.html
Copyright © 2011-2022 走看看