Redis 基础知识
11月 5, 2019
Redis 介绍 # 历史 # Redis 是一个使用 ANSI C 编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库,由来自意大利西西里岛的 Salvatore Sanfilippo(Antirez)发起并编写。从2015年6月开始,Redis 的开发由 Redis Labs 赞助,而2013年5月至2015年6月期间,其开发由 Pivotal 赞助。在2013年5月之前, … ...
Redis 介绍 # 历史 # Redis 是一个使用 ANSI C 编写的开源、支持网络、基于内存、分布式、可选持久性的键值对存储数据库,由来自意大利西西里岛的 Salvatore Sanfilippo(Antirez)发起并编写。从2015年6月开始,Redis 的开发由 Redis Labs 赞助,而2013年5月至2015年6月期间,其开发由 Pivotal 赞助。在2013年5月之前, … ...
业务背景 # 最近已经转到 Go 下面进行日常工作的开发,我的一个后台项目有一些内部轻量的数据查询需要,考虑需求的复杂度不高,就平常自己和同事几个人使用,没必要专门开发一个前端项目来进行数据查询,于是我想到了老本行 Django,由于 Django 出色的后台管理功能,我几乎不用做多少开发,只需要配置下 Model 层结构就可以了,唯一的问题就是这个 Go 项目的数据在数据库中是分表管理的。 … ...
背景 # 接触 GraphQL 是工作中需要有一个项目,用来聚合内部很多其他微服务的接口然后统一暴露给外部使用,在这样的场景下,对项目有几点需求: 能够让外部业务方对接方便,当然最好有接口文档。 各个业务方可以根据他们自己的需要自己选择字段集合。 项目提供的接口可以被不同的语言框架通过 HTTP 调用,比如前端、Python、Go 等。 基于以上的需求,在组内一位大神的提议下, … ...
说 UTF 需要先说 Unicode,而说 Unicode 需要先说 ASCII,这三者正好是历史的发展一步步进化而来的,是计算机领域为了解决全世界各种文字之间的编码统一问题而给出的通用解决方案。 ASCII 码表 # ASCII(American Standard Code for Information Interchange,美国信息交换标准代码)是基于拉丁字母的一套电脑编码系统。它主要用于 … ...
工作中的需求,需要一个基于 Django 的数据脱敏解决方案,我们的目标是要用 AES 对称加密算法,接入不能影响现有业务逻辑,数据迁移方便,失败可以回滚,最好可以开源。经过调研与开发,我最终产出了一个开源项目:luojilab/django-mirage-field,目前已经有 50+ star。本篇即为学习对称加密算法的笔记。 异或概念 # 对称加密最基础的技术就是异或运算了,简单介绍一下。 … ...
Django ORM 框架虽然很好用,但是如果不注意,在查询时很容易引发 N + 1 的查询问题。 N + 1 问题 # 考虑 文章+作者 这样的 Model 层设计,在这个模型中,Author 和 Article 是一对多的关系。 from django.db import models from django.contrib.auth.models import User class … ...
Gitlab 的 CI/CD 功能可能是区别于 GitHub 的一个最有价值的功能之一。接触了 CI/CD 以来,很多以前需要手动测试、打包、部署的工作,现在都可以通过编写 .gitlab-ci.yml 来实现了,一方面持久化、规范化了部署服务的操作流程,另一方面 CI/CD 功能与 Gitlab 深度结合,方便了开发测试流程,下面总结下最常用到的功能。 概念 # CI/CD # 在软件工程 … ...
Docker 介绍 # Docker 是一个开放源代码软件,是一个开放平台,用于开发应用、交付(shipping)应用、运行应用。 Docker 允许用户将基础设施(Infrastructure)中的应用单独分割出来,形成更小的颗粒(容器),从而提高交付软件的速度。 Docker容器与虚拟机类似,但二者在原理上不同。容器是将操作系统层虚拟化,虚拟机则是虚拟化硬件,因此容器更具有便携性、高效地利用 … ...
本文重点关注魔兽世界的重大历史走向,以及世界中各个地方的风土和人情,目的是让自己在玩游戏的时候能够理顺剧情,经常 AFK 的话也能前后关联起来,魔兽世界的世界观确实太大,另外游戏的很多玩法比如职业、天赋、专业、PVP、PVE 等等就不提了,只聊剧情。 魔兽争霸 1.0 兽人与人类 # 1994 年1月15 发布 很久以前,堕落泰坦萨格拉斯密谋血洗整个艾泽拉斯。为此,萨格拉斯操控人类法师麦迪文的心 … ...
中间件是 Django 用来处理请求和响应的钩子框架。它是一个轻量级的、底层级的“插件”系统,用于全局性地控制 Django 的输入或输出。 MIDDLEWARE # Django 自带了一些已经内置的中间件,你可以直接使用,它们被记录在 built-in middleware reference 中。 MIDDLEWARE = [ … ...