zoukankan      html  css  js  c++  java
  • 学习笔记_Redis 数据类型02

    一:String(字符串)

    1、该类型时二进制安全的。意思是可以包含任何数据,如jpg图片或者序列化对象。
    2、是Redis最基本的数据类型,string类型的值最大能存储512MB
     
    实例:
    插入:
    192.168.0.104:0>set age 78
    "OK"

    查询:

    192.168.0.104:0>get age 
    "78"
    在上面实例中我们使用了Redis的 Set 和 Get 命令,键为 :age  值为:78
    注意:一个建最大能存储512M

    二:Hash(哈希)

    1、是一个键值对集合
    2、是一个string类型的field 和 value 的映射表 ,hash 适合存储对象。
     
    实例:
    插入:
    192.168.0.104:0>HMSET student name "张三" age "100"
    "OK"

    查询name:

    192.168.0.104:0>HMGET student name 
     1)  "张三"
    上面实例中我们使用了Redis中得HMSET 、HMGET 命令,HMSET 设置了两个key->value对,HMGET 获取对应Field对应的value.
    注意:插入值得时候需要用引号括起来
     

    三、List(列表)

    Redis列表是最简单的字符串列表,按照插入顺序排序。可以添加一元素到列表的头部(左边) 或者尾部(右边)

    实例:

    插入数据:

    192.168.0.104:0>LPUSH name 渣男
    "1"
    
    192.168.0.104:0>LPUSH name 渣女
    "2"
    
    192.168.0.104:0>LPUSH name 渣男女

    获取数据:

    192.168.0.104:0>Lrange name 0 10 
     1)  "渣男女"
     2)  "渣女"
     3)  "渣男"

    效果:

     

    列表最多可存储 232 - 1 元素 (4294967295, 每个列表可存储40多亿)。

    四、Set(集合)

    1、是String类型的无序集合;

    2、集合通过哈希表实现,添加、删除、查询的复杂度都是O(1);

    实例:

    插入数据:

    192.168.0.104:0>Sadd score 100分 
    "1"
    
    192.168.0.104:0>Sadd score 200分
    "1"
    
    192.168.0.104:0>Sadd score 300分
    "1"
    
    192.168.0.104:0>Sadd score 100分
    "0"

    注意:值相同时无法插入,因为集合内的元素是唯一的,第二次插入元素被忽略。

    集合的最大成员数为 232 - 1(4294967295, 每个集合可存储40多亿个成员)。

    获取数据: 

    192.168.0.104:0>Smembers score 
     1)  "300分"
     2)  "200分"
     3)  "100分"

    效果:

    以上操作使用的是sadd命令和smembers命令,sadd命令添加一个string元素到key对应的set集合中,成功返回1.如果元素已经在集合中存在,则返回0.

    五、zset(sorted set:有序集合)

    1、zset和set一样也是string类型元素的集合,且不允许重复的成员。

    2、不同的是每个元素都会关联一个double类型的分数。redis可以通过分数来为集合中成员进行从小到大的排序。

    3、zset中的成员是唯一的,但是分数score是可以重复的。

    实例:

    插入数据:

    192.168.0.104:0>zadd myzadd 10 v1 20 v2 30 v3
    "3"
    
    192.168.0.104:0>zadd myzadd 40 v1
    "0"
    
    192.168.0.104:0>zadd myzdd 30 v4

    查询数据:

    192.168.0.104:0>zrange myzadd 0 3
     1)  "v2"
     2)  "v3"
     3)  "v1"

    效果:

     各个类型的应用场景:

    String: 

    简介:二进制安全

    特性:可以包含任何数据,比如jpg图片或者序列化的对象,一个键最大能存储512M

    Hash(字典):

    简介:键值对集合,即编程语言中的Map类型

    特性:适合存储对象,并且可以像数据库中update一个属性一样只修改某一项属性值(Memcached中需要取出整个字符串反序列化成对象修改完再序列化存回去)

    场景:存储、读取、修改用户属性

    List(列表):

    简介:链表(双向链表)

    特性:增删快,提供了操作某一段元素的API

    场景:1,最新消息排行等功能(比如朋友圈的时间线) 2,消息队列

    Set(集合):

    简介:哈希表实现,元素不重复

    特性:1、添加、删除,查找的复杂度都是O(1) 2、为集合提供了求交集、并集、差集等操作

    场景:1、共同好友 2、利用唯一性,统计访问网站的所有独立ip 3、好友推荐时,根据tag求交集,大于某个阈值就可以推荐

    Sorted Set(有序集合):

    简介:将Set中的元素增加一个权重参数score,元素按score有序排列

    特性:数据插入集合时,已经进行天然排序

    场景:1、排行榜 2、带权重的消息队列

     
     
  • 相关阅读:
    交换机、集线器、路由器区别(转)
    64位RHEL5系统上运行yum出现"This system is not registered with RHN”的解决方法
    war包和jar包的区别【转】
    jQuery选择器
    jQuery中"$"的理解
    Eclipse maven项目中使用mybatis逆向工程
    Maven下出现Cannot change version of project facet Dynamic Web module to 2.5.
    Eclipse Maven项目出现“The superclass "javax.servlet.http.HttpServlet" was not found on the Java Build Path”
    @ResponseBody的理解【转】
    Mybatis Generator最完整配置详解
  • 原文地址:https://www.cnblogs.com/Learnall/p/14348413.html
Copyright © 2011-2022 走看看