/images/avatar.png

Schaepher's Blog

编译 Redis 源码

FROM centos:7

COPY ./CentOS-Base.repo /etc/yum.repo.d/CentOS-Base.repo

RUN groupadd -r redis && useradd -r -g redis redis

ENV REDIS_VERSION 5.0.3
ENV BUILD_DEPS=' \
        gcc \
        make \
    '

ADD ./redis-${REDIS_VERSION}.tar.gz /usr/src/

RUN yum install -y ${BUILD_DEPS} \
    && mv /usr/src/redis-${REDIS_VERSION} /usr/src/redis \
	&& grep -q '^#define CONFIG_DEFAULT_PROTECTED_MODE 1$' /usr/src/redis/src/server.h \
	&& sed -ri 's!^(#define CONFIG_DEFAULT_PROTECTED_MODE) 1$!\1 0!' /usr/src/redis/src/server.h \
	&& grep -q '^#define CONFIG_DEFAULT_PROTECTED_MODE 0$' /usr/src/redis/src/server.h \
    && make -C /usr/src/redis -j "$(nproc)" \
	&& make -C /usr/src/redis install \
	&& rm -r /usr/src/redis

RUN mkdir /data && chown redis:redis /data
VOLUME /data
WORKDIR /data

COPY docker-entrypoint.sh /
RUN chmod a+x /docker-entrypoint.sh
ENTRYPOINT ["/docker-entrypoint.sh"]

EXPOSE 6379

USER redis

CMD ["redis-server"]

设计模式

概念说明

在了解各种模式之前,要把自己代入一个基础库的开发者(库作者)的角度。

客户端: 使用库的人

主体: 实际实现功能的库类

代理模式(Proxy) & 适配器模式(Adapter)

两者都是在客户端和主体之间构建一个中间层,让客户端间接访问主体。

BPMN 流程引擎 —— Camunda

2019 年初我在重新设计我们组负责的流程系统时,选择了 Camunda 流程引擎,并基于该流程引擎实现了一套适配方案。以前就想做一次总结,但总拖着。

最近公司中台在做流程引擎选型,相关同事找我了解 Camunda 以及基于 Camunda 的应用方案。经过我一番说明,对方表示收获很大。我想着也是时候把这些经验写下来了。

Memcached Redis 字符串存储容量上限

在 Memcached 和 Redis 的比较中,总会提到它们存储字符串的区别。

Memcached 默认上限是 1MB (最大上限是 1GB),而 Redis 是 512MB 。

但是这样就够了吗?我们很自然的会对此提出一些问题。

这个“字符串存储容量上限”的限制配置在哪?

看看源码吧。