Redis的一些使用场景

看了一些文章,关于Redis的使用场景,觉得挺好的。Redis肯定远远不止作为缓存而使用。Redis更像是一个实现很好的数据结构服务器,通过TCP栈协议提供服务。下面进行详细描述。

http://database.51cto.com/art/201107/276333.htm

(其实是对 http://highscalability.com/blog/2011/7/6/11-common-web-use-cases-solved-in-redis.html 的翻译和补充)

显示最新的项目列表

下面这个语句常用来显示最新项目,随着数据多了,查询毫无疑问会越来越慢。

SELECT * FROM foo WHERE ... ORDER BY time DESC LIMIT 10

在Web应用中,“列出最新的回复”之类的查询非常普遍。

因为项目本来就是按这个顺序被创建的,但要输出这个顺序却不得不进行排序操作。

类似的问题就可以用Redis来解决。比如说,我们的一个Web应用想要列出用户贴出的最新20条评论。在最新的评论边上我们有一个“显示全部”的链接,点击后就可以获得更多的评论。

我们假设数据库中的每条评论都有一个唯一的递增的ID字段。

-每次新评论发表时,我们会将它的ID添加到一个Redis列表:

LPUSH latest.comments <ID> 

-我们将列表裁剪为指定长度,因此Redis只需要保存最新的5000条评论:

LTRIM latest.comments 0 5000 

FUNCTION get_latest_comments(start,num_items):
   id_list = redis.lrange(‘latest.comments‘,start,start+num_items-1)
   IF id_list.length < num_items
       id_list = SQL_DB(‘SELECT ... ORDER BY time LIMIT ...‘;)
   END
   RETURN id_list
END 

SQL数据库(或是硬盘上的其他类型数据库)只是在用户需要获取“很远”的数据时才会被触发,而主页或第一个评论页是不会麻烦到硬盘上的数据库了。

删除与过滤

我们可以使用LREM来删除评论。

可以给列表记上

排行榜相关

时间: 2024-10-10 04:58:51

Redis的一些使用场景的相关文章

深入分析Redis特点及应用场景

本文和大家分享的主要是redis 特点及应用场景相关内容,一起来看看吧,希望对大家 学习redis有所帮助. REmote DIctionary Server(Redis)  是一个由 Salvatore Sanfilippo 写的 key-value 存储系统. Redis 是一个开源的使用 ANSI C 语言编写.遵守 BSD 协议.支持网络.可基于内存亦可持久化的日志型. Key-Value 数据库,并提供多种语言的 API . 它通常被称为数据结构服务器,因为值(value )可以是 字

redis数据类型及使用场景

Redis数据类型  String: Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字. 常用命令:  set,get,decr,incr,mget 等. 应用场景:String是最常用的一种数据类型,普通的key/ value 存储都可以归为此类.即可以完全实现目前 Memcached 的功能,并且效率更高.还可以享受Redis的定时持久化,操作日志及 Replication等功能.除了提供与 Memcached 一样的get.set.in

Redis各类型应用场景[转]

Redis各类型应用场景 Redis的六种特性 l Strings l Hashs l Lists l Sets l Sorted Sets l Pub/Sub Redis各特性的应用场景 Strings Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字. 常用方法 方法 说明 特性 set 设置key对应的的值为String类型的value get 获取对应key对应的String的值,如果不存在返回nil setnx 设置可以为对应的值为

redis数据类型和应用场景

Redis是什么?两句话可以做下概括: 1. 是一个完全开源免费的key-value内存数据库 2. 通常被认为是一个数据结构服务器,主要是因为其有着丰富的数据结构 strings.map. list.sets. sorted sets redis 五种数据类型:string,hash(哈希类型),list(链表结构),set(无序集合)及zset(sorted set  --有序集合). Redis 应用场景: 1.显示最新的项目列表 下面这个语句常用来显示最新项目,随着数据多了,查询毫无疑问

Redis工业生产应用场景

Redis应用场景 国内外三个不同领域巨头分享的Redis实战经验及使用场景 Redis的5个常见使用场景 Redis应用场景 Redis应用场景<张善友>

小蚂蚁学习Redis笔记(1)——Redis简介、适用场景、对比

Nosql    =    not only sql    反sql运动,非关系型数据库 Nosql是以key-value形式存储,和传统的关系型数据库形成对比. Nosql有以下几个特点:非关系型的,分布式,开源的,水平可拓展的. 优点: 1. 处理超大量的数据    2. 运行在便宜的PC服务器集群上    3. 击碎了性能瓶颈 Nosql的适用场景: 1. 对数据高并发读写    2. 对海量数据的高效率存储和访问    3. 对数据的高可扩展性和高可用性 ps:扩展性好主要体现在它没有一

Memcached和Redis对比和适用场景

关于memcached和redis的使用场景,根据大神们的讨论和我在网上查到的资料,总结一下: 两者对比: redis提供数据持久化功能,memcached无持久化: redis的数据结构比memcached要丰富,能完成场景以外的事情: memcached的单个key限制在250B,value限制在1MB:redis的K.V都为512MB;当然这些值可以在源码中修改: memcached数据回收基于LRU算法,Redis提供了多种回收策略(包含LRU),但是redis的回收策的过期逻辑不可依赖

Redis各类型应用场景

Redis的六种特性 l Strings l Hashs l Lists l Sets l Sorted Sets l Pub/Sub Redis各特性的应用场景 Strings Strings 数据结构是简单的key-value类型,value其实不仅是String,也可以是数字. 常用方法 方法 说明 特性 set 设置key对应的的值为String类型的value get 获取对应key对应的String的值,如果不存在返回nil setnx 设置可以为对应的值为String类型的valu

[Chapter 0] Redis 介绍与应用场景

NoSQL(NoSQL = Not Only SQL ),意即"不仅仅是SQL",是一项全新的数据库革命性运动,早期就有人提出,发展至2009年趋势越发高涨.NoSQL的拥护者们提倡运用非关系型的数据存储,相对于铺天盖地的关系型数据库运用,这一概念无疑是一种全新的思维的注入. NoSQL的特点: 处理差大量的数据 运行在廉价的PC服务器集群 解决性能瓶颈 NOSQL应用场景: 对数据高并发读写 对海量数据的高效率存储和访问 对数据的高可扩展性和高可用性 Redis is an open

Redis演示及使用场景

概述 Redis是一个开源的.使用C语言编写的.支持网络交互的.可基于内存也可持久化的Key-Value(字典, Remote Dictionary Server,远程字典服务器)数据库. 客户端:http://redis.io/clients 命令:http://redis.io/commands     http://redisdoc.com .NET开发程序配置 ServiceStack.Common.dll ServiceStack.Interfaces.dll ServiceStack