zoukankan      html  css  js  c++  java
  • Redis学习笔记(二):Redis介绍

    Redis,一种高性能的key-value数据库,并提供多种语言的API。它通常称为数据结构服务器,因为值可以是字符串,哈希,列表,集合和有序集合等类型。

    redis特点:

    • Redis支持数据的格式化,可以将内存中的数据保存在磁盘中,重启的时候可以加载进行使用。
    • Redis不仅仅支持key-value类型的数据,同时还提供list,set,zset,hash等数据结构的存储。
    • Redis支持数据的备份,即master-slave模式的数据备份。
    • 性能极高
    • 所有操作都是原子操作,要么全成功,要不不成功。支持事物。

     Redis数据类型:

      Redis支持五种数据类型:string,hash,list,set和zset(sorted set,有序集合)。

      string型:string类型是二进制安全的,可以包含任何数据,比如jpg图片或序列化的对象。一个键最大能存储512M。一般做一些复杂的计数功能的缓存。

      Hash:是一个string类型的field和value的映射表,hash特别适合用于存储对象。每个hash可以存储2^32-1个键值对(40亿)。这里的value存放的是结构化对象,比较方便的就是操作其中的某个字段。当做单点登录的时候,就是用这种数据结构存储用户信息。以cookieid作为key,设置30分钟为缓存过期时间,模拟session效果

    127.0.0.1:6379> hmset myfamily yaohuiqin girlfriend weixihui boyfriend
    OK
    127.0.0.1:6379> hget myfamily yaohuiqin
    "girlfriend"
    127.0.0.1:6379> hget myfamily weixihui
    "boyfriend"
    

      

      List(列表):列表是简单的字符串列表,按照插入顺序排序。列表最多可以存储2^32-1个元素(40亿)。使用List的数据结构,可以做简单的消息队列的功能。利用lrange命令,做基于redis的分页功能,效果极佳。

    127.0.0.1:6379> lpush bigfamily yaohuiqin
    (integer) 1
    127.0.0.1:6379> lpush bigfamily yaohuiqin
    (integer) 2
    127.0.0.1:6379> lpush bigfamily weixihui
    (integer) 3
    127.0.0.1:6379> lpush bigfamily mama
    (integer) 4
    127.0.0.1:6379> lpush bigfamily baba
    (integer) 5
    
    127.0.0.1:6379> lrange bigfamily 0 10
    1) "baba"
    2) "mama"
    3) "weixihui"
    4) "yaohuiqin"
    5) "yaohuiqin"
    

      Set:是string类型的无序不重复集合,集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。set堆放的是一堆不重复的集合,所以可以做局部去重功能。利用交集、并集、差集等操作,可以计算共同喜好,全部的喜好,自己独有的喜好等功能

    127.0.0.1:6379> sadd setfamily yaohuiqin
    (integer) 1
    127.0.0.1:6379> sadd setfamily weixihui
    (integer) 1
    127.0.0.1:6379> sadd setfamily mama
    (integer) 1
    127.0.0.1:6379> sadd setfamily baba
    (integer) 1
    127.0.0.1:6379> sadd setfamily didi
    (integer) 1
    127.0.0.1:6379> sadd setfamily yaohuiqin
    (integer) 0
    127.0.0.1:6379> sadd setfamily weixihui
    (integer) 0
    
    127.0.0.1:6379> smembers setfamily
    1) "weixihui"
    2) "yaohuiqin"
    3) "mama"
    4) "baba"
    5) "didi"
    

      zset:有序集合,string元素的类型集合,不允许有重复。不同的元素都会关联一个double类型的分数。redis正式通过分数来对集合中的成员进行从小到大的排序。注意,zset的成员唯一,但是分数可以重复。多了一个权重参数score,集合中的元素能够按照score进行排序,可以做排行榜应用,取TOP  N操作。

    127.0.0.1:6379> zadd zsetfamily  0 yaohuiqin
    (integer) 1
    127.0.0.1:6379> zadd zsetfamily 2 weixihui
    (integer) 1
    127.0.0.1:6379> zadd zsetfamily 3 baba
    (integer) 1
    127.0.0.1:6379> zadd zsetfamily 0 mama
    (integer) 1
    127.0.0.1:6379> zrangebyscore zsetfamily 0 100
    1) "mama"
    2) "yaohuiqin"
    3) "weixihui"
    4) "baba"
    

      

      

  • 相关阅读:
    设计模式 里氏替换原则
    java队列
    java 多线程
    设计模式-里氏替换原则
    设计模式-单一职责原则
    一、概念
    六、序列化和反序列化(对象流)
    七、随机访问文件流
    五、包装流
    四、字符输入输出流
  • 原文地址:https://www.cnblogs.com/yaohuiqin/p/9400243.html
Copyright © 2011-2022 走看看