分类 database 下的文章

  1. Redis入门教程 -- 我们开始学习Redis的时候,可以先按照这个教程看一遍,教程中包括Redis介绍,环境配置等
  2. Redis命令参考 -- 比较好用和详细的Redis命令参考手册
  3. Redis中文官网 -- 资料比较全,有常用命令,文档等等
  4. Redis中文文档 -- Redis中文文档,这个上面主要用来查看Redis命令
  5. Redis有效时间设置及时间过期处理 -- Redis 自动删除 专题学习文章
  6. Redis持久化 -- Redis 持久化 专题学习文章
  7. 深入学习Redis(1):Redis内存模型 -- Redis 内存 专题学习文章,此文章中还涉及持久化等,质量较高的Blog
  8. 理解Redis的内存 -- Redis 内存 专题学习文章,质量较高的Blog
  9. Redis 设计与实现 -- 书籍链接,部分章节不可见
  10. Redis特性和应用场景 -- 不同数据结构的不同命令写的比较清楚,最后有几个应用场景写的不错
  11. RedisDesktopManager -- 可视化工具
  12. Type-safe Redis client for Golang -- go-redis,golang的redis库

最近在进行技术方案设计的时候,经常会牵扯到DB的选型(redis和MySQL),由于对数据库不熟悉,请教了学东大佬,建议如下:
如果说最终数据要落到mysql中,就先没必要搞任何形式的缓存。
如果直接把redis+持久化当做数据库来用,那么考虑下后续业务的拓展,如果能应对需求变化,直接用redis也是可以的。

redis + mysql 架构的方式,常见有一下两种:

  1. mysql作为主库,redis作为缓存
  2. redis作为主库,mysql作为冷备库
    我这边用的主要是第一种方式:两者的关联是数据一致性,可被动同步和主动同步。数据来源最好是先mysql->redis。缓存更新触发可以是 被动更新/主动更新。

用Redis作Mysql数据库缓存,必须解决2个问题。首先,应该确定用何种数据结构存储来自Mysql的数据;在确定数据结构之后,还要考虑用什么标识作为该数据结构的键。
直观上看,Mysql中的数据都是按表存储的;更微观地看,这些表都是按行存储的。每执行一次select查询,Mysql都会返回一个结果集,这个结果集由若干行组成。所以,一个自然而然的想法就是在Redis中找到一种对应于Mysql行的数据结构。Redis中提供了五种基本数据结构,即字符串(string)、列表(list)、哈希(hash)、集合(set)和有序集合(sorted set)。经过调研,发现适合存储行的数据结构有两种,即string和hash。
要把Mysql的行数据存入string,首先需要对行数据进行格式化。事实上,结果集的每一行都可以看做若干由字段名和其对应值组成的键值对集合。这种键值对结构很容易让我们想起Json格式。因此,这里选用Json格式作为结果集每一行的格式化模板。根据这一想法,我们可以实现将结果集格式化为若干Json对象,并将Json对象转化为字符串存入Redis的代码。

参考:
浅谈Redis数据库的键值设计
如何将数据库中表转化到redis中
基于内存,redis,mysql的高速游戏数据服务器设计架构
缓存更新的套路
MySQL 查询缓存
热点数据缓存技术
mysql 缓存机制
初学Redis(1)——认识Redis
初学Redis(2)——用Redis作为Mysql数据库的缓存
初学Redis(3)——用Redis作为Mysql数据库的缓存
初学Redis(4)——简单实现Redis缓存中的排序功能