摘要: 没有身份认证机制!memcached 是运行在应用下层的软件(身份验证应该是应用 上层的职责)。memcached 的客户端和服务器端之所以是轻量级的,部分原因就 是完全没有实现身份验证机制。这样,memcached 可以很快地创建新连接,服务 器端也无需任何配置。 如果您希望限制访问,您可以使用防 阅读全文
posted @ 2020-06-18 11:18 咔啡 阅读(194) 评论(0) 推荐(0)
摘要: 首先,local cache 有许多与上面(query cache)相同的问题。local cache 能够利 用的内存容量受到(单台)服务器空闲内存空间的限制。不过,local第 109 页 共 485 页 cache 有一点比 memcached 和 query cache 都要好,那就是它不但 阅读全文
posted @ 2020-06-18 11:10 咔啡 阅读(302) 评论(0) 推荐(0)
摘要: 不处理! 在 memcached 节点失效的情况下,集群没有必要做任何容错处理。如 果发生了节点失效,应对的措施完全取决于用户。节点失效时,下面列出几种方 案供您选择: 忽略它! 在失效节点被恢复或替换之前,还有很多其他节点可以应对节 点失效带来的影响。 把失效的节点从节点列表中移除。做这个操作千万 阅读全文
posted @ 2020-06-18 10:20 咔啡 阅读(149) 评论(0) 推荐(0)
摘要: 线程就是定律(threads rule)!在 Steven Grimm 和 Facebook 的努力下, memcached 1.2 及更高版本拥有了多线程模式。多线程模式允许 memcached 能 够充分利用多个 CPU,并在 CPU 之间共享所有的缓存数据。memcached 使用一 种简单的 阅读全文
posted @ 2020-06-18 10:00 咔啡 阅读(483) 评论(0) 推荐(0)
摘要: 实际上,这是一个编译时选项。默认会使用内部的 slab 分配器。您确实确实应该 使用内建的 slab 分配器。最早的时候,memcached 只使用 malloc/free 来管理 内存。然而,这种方式不能与 OS 的内存管理以前很好地工作。反复地 malloc/free 造成了内存碎片,OS 最终 阅读全文
posted @ 2020-06-18 09:59 咔啡 阅读(138) 评论(0) 推荐(0)
摘要: 不实现!我们对这个问题感到很惊讶。Memcached 应该是应用的缓存层。它的设 计本身就不带有任何冗余机制。如果一个 memcached 节点失去了所有数据,您 应该可以从数据源(比如数据库)再次获取到数据。您应该特别注意,您的应用 应该可以容忍节点的失效。不要写一些糟糕的查询代码,寄希望于 me 阅读全文
posted @ 2020-06-18 09:56 咔啡 阅读(169) 评论(0) 推荐(0)
摘要: 1MB。如果你的数据大于 1MB,可以考虑在客户端压缩或拆分到多个 key 中。 为什么单个 item 的大小被限制在 1M byte 之内? 简单的回答:因为内存分配器的算法就是这样的。 详细的回答:Memcached 的内存存储引擎(引擎将来可插拔…),使用 slabs 来 管理内存。内存被分成 阅读全文
posted @ 2020-06-18 09:51 咔啡 阅读(454) 评论(0) 推荐(0)
摘要: key 的最大长度是 250 个字符。需要注意的是,250 是 memcached 服务器端内 部的限制,如果您使用的客户端支持”key 的前缀”或类似特性,那么 key(前缀 +原始 key)的最大长度是可以超过 250 个字符的。我们推荐使用使用较短的 key, 因为可以节省内存和带宽。 mem 阅读全文
posted @ 2020-06-18 09:49 咔啡 阅读(317) 评论(0) 推荐(0)
摘要: Redis 内存数据集大小上升到一定大小的时候,就会施行数据淘汰策略。 相关知识:Redis 提供 6 种数据淘汰策略: volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最 少使用的数据淘汰 volatile-ttl:从已设置过期时间的数据集( 阅读全文
posted @ 2020-06-18 09:42 咔啡 阅读(180) 评论(0) 推荐(0)
摘要: 在 SELECT 语句的列比较中使用=,<>,<=,<,> =,>,<<,>>,<=>,AND,OR 或 LIKE 运算符。 阅读全文
posted @ 2020-06-18 09:41 咔啡 阅读(219) 评论(0) 推荐(0)
摘要: Datatime:以 YYYY-MM-DD HH:MM:SS 格式存储时期时间,精确到秒, 占用 8 个字节得存储空间,datatime 类型与时区无关 Timestamp:以时间戳格式存储,占用 4 个字节,范围小 1970-1-1 到 2038-1-19, 显示依赖于所指定得时区,默认在第一个列 阅读全文
posted @ 2020-06-18 09:40 咔啡 阅读(161) 评论(0) 推荐(0)
摘要: EXPIRE 和 PERSIST 命令。 阅读全文
posted @ 2020-06-18 09:38 咔啡 阅读(5245) 评论(0) 推荐(1)
摘要: Redis 并不能保证数据的强一致性,这意味这在实际中集群在特定的条件下可能会丢失写操作。 阅读全文
posted @ 2020-06-18 09:37 咔啡 阅读(594) 评论(0) 推荐(0)
摘要: Redis 是完全开源免费的,遵守 BSD 协议,是一个高性能的 key-value 数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再 次加载进行使用。 Redis 不仅仅支持简单的 key 阅读全文
posted @ 2020-06-18 09:35 咔啡 阅读(135) 评论(0) 推荐(0)
摘要: 把 memcached 引入应用中,还是需要不少工作量的。MySQL 有个使用方便的 query cache,可以自动地缓存 SQL 查询的结果,被缓存的 SQL 查询可以被反复 地快速执行。Memcached 与之相比,怎么样呢?MySQL 的 query cache 是集中 式的,连接到该 qu 阅读全文
posted @ 2020-06-18 09:19 咔啡 阅读(182) 评论(0) 推荐(0)
摘要: Redis 提供两种持久化机制 RDB 和 AOF 机制: 1、RDBRedis DataBase)持久化方式: 是指用数据集快照的方式半持久化模式) 记录 redis 数据库的所有键值对,在某个时间点将数据写入一个临时文件,持久化 结束后,用这个临时文件替换上次持久化的文件,达到数据恢复。 优点: 阅读全文
posted @ 2020-06-18 09:14 咔啡 阅读(1166) 评论(0) 推荐(0)
摘要: 1、Redis 不仅仅支持简单的 k/v 类型的数据,同时还提供 list,set,zset,hash 等数据结构的存储。而 memcache 只支持简单数据类型,需要客户端自己处理复 杂对象 2、Redis 支持数据的持久化,可以将内存中的数据保持在磁盘中,重启的时候可 以再次加载进行使用(PS: 阅读全文
posted @ 2020-06-18 09:11 咔啡 阅读(145) 评论(0) 推荐(0)
摘要: volatile-lru:从已设置过期时间的数据集(server.db[i].expires)中挑选最近最 少使用的数据淘汰 volatile-ttl:从已设置过期时间的数据集(server.db[i].expires)中挑选将要过 期的数据淘汰 volatile-random:从已设置过期时间的数 阅读全文
posted @ 2020-06-18 08:44 咔啡 阅读(1180) 评论(0) 推荐(0)
摘要: a、完全基于内存缓存的 b、节点之间相互独立 c、C/S 模式架构,C 语言编写,总共 2000 行代码。 d、异步I/O 模型,使用 libevent 作为事件通知机制。 e、被缓存的数据以 key/value 键值对形式存在的。 f、全部数据存放于内存中,无持久性存储的设计,重启服务器,内存里的 阅读全文
posted @ 2020-06-18 08:19 咔啡 阅读(183) 评论(0) 推荐(0)
摘要: Session 是运行在一台服务器上的,所有的访问都会到达我们的唯一服务器上,这 样我们可以根据客户端传来的 sessionID,来获取 session,或在对应 Session 不 存在的情况下(session 生命周期到了/用户第一次登录),创建一个新的 Session; 但是,如果我们在集群环 阅读全文
posted @ 2020-06-18 08:12 咔啡 阅读(314) 评论(0) 推荐(0)