redis学习总结(一)
一.简单介绍
REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。
Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
它通常被称为数据结构服务器,因为值(value)可以是 字符串(String), 哈希(Map), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
redis项目未有提供对windows系统的支持,而Microsoft Open Tech提供了一个基于win64的redis实现,简单学习使用在window下就可以。
面对需求的时候,如果用redis可以方便解决,则不需要编写更多的代码。
二.常用数据类型的使用,具体命令去查手册
- 1.String
key的值是二进制安全的,可以存储任何二进制序列,例如一张图片,一个ruby序列,最多存储521M
bitMap位图
bitop bitcount 常用于 按天统计网站活跃用户的数量,网站用户的上线统计次数。
- 2.list
ltrim 去除指定范围外元素,但是并不会删除list中的元素,只是返回指定范围内的元素。有点类似分页
- 3.hash散列
面对一个业务需求,如果可以使用string, 则使用hash散列更优,但是如果 设置过期 bitop 等则只能使用string.
适用 微博好友的关注,用户维度的统计。
- 4.set
无序,去重复,元素是字符串类型,
集合中最大的成员数为 2^32 -1=4294967295, 每个集合可存储40多亿个成员
scard key 表示返回集合元素个数,时间复杂度o(1),集合长度记录在键结果保存信息中,不需要遍历,就可以知道。
SRANDMEMBER friends -5 可返回无序,可重复的5个集合中元素。
并集 交集 差集
适用场景:微博中共同关注好友,设计每个用户关注的用户放在set中,求交集。一般在后台定期执行,然后用户访问直接展示,响应快。
- 5.sorted_set
有序,去重复,元素是字符串类型,
集合中最大的成员数为 2^32 -1=4294967295, 每个集合可存储40多亿个成员
每个元素关联着一个浮点数分值(score),并按照分值从小到大顺序排列,分值可相同。
适用场景:云音乐排名,歌名做元素,播放次数做分值。日排行,周排行,取并集即可。
博客,新闻,论坛,搜索引擎,页面列表的分页,使用 ZREVRANGE key 2 3
博客中使用时间戳来的分值
注意:参与并集运算的集合多,会造成redis服务器阻塞,因此最好放在空闲时间或者备用服务器上。
redis的初步入门学习到这里,介绍常用的数据类型,持续-----------------
作者:Frank —— 弗兰克中校
出处:http://www.cnblogs.com/yb666/
本文版权归作者和博客园所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。