首先,你要对Redis有非常详尽的了解,包括常用命令,基本的数据结构String, Hash,List,Set等。
其次,要结合及项目的业务场景选择最合适的数据结构。
最后,几点建议,对于key的管理,最好在程序中使用全局配置来实现,直接在代码里写前缀的做法要严格避免,这样可维护性实在太差;设计好你的Sharding机制;注意数据的持久化;
主要是用来将原有的业务数据分离出来,做热点数据(排名、统计、最近信息)的展示以及需要实时更新或排序的数据;
1. 因此我们的用户数据是存mysql的,同时有部分用户实时数据同时也存在redis;
2. 我们的系统里md5+salt里的salt是每个用户单独生成的,因此相同密码也不会有相同的md5结果
3.数据落地的时候, 先根据mysql的结构入一份 mysql 一份序列化到 redis 。create的时候, 先去redis找,如果找不到。直接去 mysql读。
数据库设计
http://blog.codingnow.com/2011/11/dev_note_2.html
- account:[id]:version number
- account:[id]:email string
- account:[id]:password string // md5(password..salt)
- account:[id]:nickname string
- account:[id]:lastlogin hashes
- ip string
- time string
- account:[id]:history list(string)
- account:[id]:available enum(open/locked/delete)
127.0.0.1:6379> set account:001:version 1
OK
127.0.0.1:6379> set account:001:email "[email protected]"
OK
127.0.0.1:6379> set account:001:nickname "小明"
OK
127.0.0.1:6379> hmset account:001 ip "10.101.1.212" time "0081222"
OK
127.0.0.1:6379> lpush account:001:history "3333" "4444"
(integer) 2
127.0.0.1:6379> set account:count 0
OK
127.0.0.1:6379> incrby account:count 1
(integer) 1