大数组模式
官网没有提供例子,自己补充了一个。大家如果有更好的例子欢迎留言讨论啊。
场景:比如我们要记录用户名(或者其他信息)。假定单个用户名字不超过64字节。新用户id通过一个incre指令获得, 名字存储可以这样:
setrange username (id-1)*64 real-name
也就是id为1的用户放在0到63,2的在64到127,….
取的时候,getrange username (id-1) (id-1+63)
哈,简单的几句就完成存储和读取了. 比mysql啥的爽多快多多多多了
取128到191的时候后面不会跟一堆0是因为redis那边字符串已经到尾巴啦。
归根结底的,redis就是给了一个大的数组,并提供o(1)的随机访问。相当于我们有了一块“大的内存空间”和几个访问修改函数。一般的思维模式可能是直接使用list等之类
来实现。