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