文章归博客园和作者“蜗牛”共同所有 。转载和爬虫请注明原文Redis系列链接 http://www.cnblogs.com/tdws/tag/NoSql/
Redis有五种基本数据类型。他们分别是字符串,散列,列表,集合,有序集合。实际上,后四种,在我们表面上理解看来,是以不同的形式来组织字符串键值。
你可以用其存储任何你所希望的一块整体数据,是整体数据哟。如果是文章的标题,标签,内容,评论这样的数据,虽然你可以将其对象序列化为Json存储,但是不建议使用字符串。因为作为一个整体存储,当你想获得其中任意一项时,比如标题或者说作者,你需要获取整文章数据并且传输量大了不少,接下来反序列化,并获得标题。你也甚至可以存储base64一类的图片等等。最常用的像用户名,密码,邮箱,验证码等。一个字符串键最大允许存储512MB数据。
set key value
keys * 列出所有键 keys ,不建议在生产环境使用。
keys支持通配符号
使用*匹配任意个(包括0个)字符
使用[] 匹配范围
使用?匹配任意一个字符。注意 是“一”个
还有一个\x转义符,这就是在需要取有转义符号的内容时用到的。
exists 判断是否存在,存在几个返回相应的数字
del keys 删除键 删除几个返回相应的数字
type key 返回key的类型
get key 获取键值 只适用于字符串哟
incr key递增数字,用get set自主实现incr key会发生竞态。详情请看我的Redis并发锁一文。如果不存在的key默认为0,该指令操作后值为1,返回递增后的值。
incrby key 增加指定值,返回的是增加后的结果。
decr decrby都是减法。
append key val拼接值,最后返回字符串长度。
strlen获取键的值的字符串长度。
mset mget 一次存储和获取多个键值
小结:简单介绍了基本的字符串类型操作以及结果。还有位操作没怎么用过。incr命令一般可以用于文章的ID,访问量统计等情况,不会发生并发竞态。
另外在习惯中,我们为Redis的key命名是由对象类型:对象ID:对象属性来命名的。
比如:Artical:4001:ViewCount 文章4001的访问量 Project:1001:PM 项目1001的PM Book:9001:Author.Name 书籍9001的作者名称