whoru

学习、分享、交流、沉淀

MemCache

  • 多线程、异步I/O,可以充分利用多核 CPU 的优势,性能优秀
  • 功能简单,使用内存存储数据
  • 限制
    • key 小于 250B
    • value 小于 1M
    • key 最大失效时间小于 30 天
    • 只支持 K-V 结构,不支持持久化和主从同步

Redis

  • 单线程(可以借助多进程,以更好的发挥单机性能)
    • 异步非阻塞I/O(多路复用)
      • 多路:多个网络连接
      • 复用:复用同一个线程
    • 避免多线程上下文切换的代价
    • 避免多线程造成各种锁的问题
  • 数据在内存存储,支持持久化
  • 支持更多的数据类型,list、hash、set等
  • 主从 Sentinel +集群 Cluster,能够提供高可用服务

大多数计算机语言,有且仅有一个表示“无”的值,比如:C 语言的 NULL,Java 语言的 null,Python 语言的 None,Ruby 语言的 nil。

但是在 JavaScript 中却同时存在 undefined 和 null,这主要是由于历史原因,感兴趣的可以查一下。

二者的主要用法区别如下:

  • undefined
    • 变量被声明了,但没有赋值时,就等于 undefined
    • 调用函数时,应该提供的参数没有提供,该参数等于 undefined
    • 对象没有赋值的属性,该属性的值为 undefined
    • 函数没有返回值时,默认返回 undefined
  • null
    • 作为函数的参数,表示该函数的参数不是对象。
    • 作为对象原型链的终点。

⚠️ 注意:在 JavaScript 中 undefined 是一个全局变量,而不是关键字!

  1. 为了避免无意中被篡改,建议使用 void 0 来获取 undefined 值。
  2. 在比较时,建议使用 if (typeof var1 === 'undefined') {}。

该实践其实是一个目录操作规范,以易于使用为最终目的,将需要个性化和经常会变动的目录或文件独立出来,借助简单的 Shell 脚本进行 Hexo 的初始化及 NexT 主题的升级。

说明:来源于个人使用过程中的总结,可能并不适合所有人,仅供参考。

阅读全文 »