zoukankan      html  css  js  c++  java
  • X皮书之初识Redis(上)

     
    思维导图
     

     
     
      在上文中提到,我正在做豆瓣数据同步操作。现在同步操作已经做完了,现在的问题是读取问题。
     
     
    使用Redis原因
     
      现在没有足够的MySQL服务器支持我的业务,老大意思是要把压力交给Redis,主要是从效率上考虑。
     
      大致的架构是这样的。

     
    找资料
     
     
     
    操作
     

    准备并安装 

    进入src目录启动服务:

    看起来不错。

    下面来我们在客户端链接它。

                                         Redis把所有的值当作字符数组处理,而不关心它是其他什么。

     
    字符查询:
      

     
     
    数据结构
     

    Strings:

      理解成跟Memcached一样的类型,一个key对应一个value,其上操作与Memcached的操作类似。

      看我终端的命令:(其中get key是获取对应值的操作)

    Hashes:

      hash特别适合用于存储对象。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存储整个对象。如果value的大小超出一定限制后,Redis会在内部自动将zipmap替换成正常的hash实现。 

    看我的操作:

    lists:

      lists是一个双向链表结构,操作中key理解为链表的名字。——可以用作栈,也可以用作队列。

      注意:lists有长度限制,最大长度是2的32次方。

    sets

      set是集合——主要操作,对多个集合求交并差等操作,key理解为集合的名字。

      set也是通过hash table实现的。

    sorted sets:

      它是set的一个升级版本,它的实现是skip list和hash table的混合体。

    常用命令
     
    返回key值:keys
      返回满足给定pattern的所有key ——第二个参数必须有,如果没有会报错。

    确认key是否存在:exists

    删除一个key: del

    设置一个过期时间:expire(单位:秒)

    重命名key:rename

    返回值类型:type

    总结
     
      这只是基础篇,就是大致的熟悉下Redis。重点是要理解那5个基础结构,要知道每个结构的优缺点,对于不同的业务要选择合适的数据结构。——我自己会选择使用hash结构。
     
      还有跳表是很热门的数据结构,如果不熟悉花点时间熟悉下。
     
      我也是第一次使用。如果有误望大家多多指点。
     
    推荐
     
    喜欢编程
  • 相关阅读:
    cf1100 F. Ivan and Burgers
    cf 1033 D. Divisors
    LeetCode 17. 电话号码的字母组合
    LeetCode 491. 递增的子序列
    LeetCode 459.重复的子字符串
    LeetCode 504. 七进制数
    LeetCode 3.无重复字符的最长子串
    LeetCode 16.06. 最小差
    LeetCode 77. 组合
    LeetCode 611. 有效三角形个数
  • 原文地址:https://www.cnblogs.com/baochuan/p/2740600.html
Copyright © 2011-2022 走看看