代码改变世界

随笔分类 -  缓存

Redis能干啥?细看11种Web应用场景

2012-03-30 13:54 by xlw, 473 阅读, 收藏, 编辑
摘要: 下面列出11种Web应用场景,在这些场景下可以充分的利用Redis的特性,大大提高效率。1.在主页中显示最新的项目列表。Redis使用的是常驻内存的缓存,速度非常快。LPUSH用来插入一个内容ID,作为关键字存储在列表头部。LTRIM用来限制列表中的项目数最多为5000。如果用户需要的检索的数据量超越这个缓存容量,这时才需要把请求发送到数据库。2.删除和过滤。如果一篇文章被删除,可以使用LREM从缓存中彻底清除掉。3.排行榜及相关问题。排行榜(leader board)按照得分进行排序。ZADD命令可以直接实现这个功能,而ZREVRANGE命令可以用来按照得分来获取前100名的用户,ZRANK 阅读全文

对redis数据持久化的一些想法

2012-03-29 14:23 by xlw, 380 阅读, 收藏, 编辑
摘要: 数据持久化通俗讲就是把数据保存到磁盘上,保证不会因为断电等因素丢失数据。redis需要经常将内存中的数据同步到磁盘来保证持久化。redis支持两种持久化方式,一种是 Snapshotting(快照)也是默认方式,另一种是Append-only file(缩写aof)的方式。先介绍下这两种dump方式再讲讲自己遇到的一些现象和想法,前面的内容是从网上整理出来的。Snapshotting快照是默认的持久化方式。这种方式是就是将内存中数据以快照的方式写入到二进制文件中,默认的文件名为dump.rdb。可以通过配置设置自动做快照持久 化的方式。我们可以配置redis在n秒内如果超过m个key被修改就自 阅读全文

转:一致性 hash 算法( consistent hashing )

2012-03-29 09:57 by xlw, 217 阅读, 收藏, 编辑
摘要: 最近在研究cassandra,dynamo,bigtable等no sql数据库,其中的partition算法基于consistent hashing实现添加/删除节点主机时的单调性,以及各个主机之间的loadbalance。什么是consistent hashing(一致性哈希)?我觉得这篇文章写的很好!原文地址:http://blog.csdn.net/sparkliang/archive/2010/02/02/5279393.aspxconsistent hashing 算法早在 1997 年就在论文 Consistent hashing and random trees 中被提出,目前 阅读全文

Redis在Windows下的使用

2012-03-26 15:27 by xlw, 460 阅读, 收藏, 编辑
摘要: Windows版的Redis可到此处下载,非官方版http://code.google.com/p/servicestack/wiki/RedisWindowsDownloadRedis文件夹有以下几个文件redis-server.exe:服务程序指定redis的配置文件,如没有指定,则使用默认设置D:\redis-2.0.0-rc2>redis-server.exe redis.confredis.conf配置选项如下daemonize 是否以后台进程运行,默认为nopidfile 如以后台进程运行,则需指定一个pid,默认为/var/run/redis.pidbind 绑定主机IP, 阅读全文

Redis主从服务器

2012-03-26 15:13 by xlw, 591 阅读, 收藏, 编辑
摘要: 配置主从服务器Redis主从服务器的搭建很简单,只要少许配置即可,为了演示的方便,我们就在一台服务器上配置:前提是你已经有了一台Redis服务器,如果没有可以参考我以前的文章安装。下面看看如何配置从服务器:假设主服务器的配置文件是:/etc/redis.conf,我们复制一份作为从服务器的配置文件:cp /etc/redis.conf /etc/redis_slave.conf并作修改:# vi /etc/redis_slave.confport 6380dbfilename dump_slave.rdbslaveof 127.0.0.1 6379主服务器的端口使用的是缺省的6379,从服务器 阅读全文

Redis指令文档

2012-03-26 15:10 by xlw, 217 阅读, 收藏, 编辑
摘要: 连接控制QUIT 关闭连接AUTH (仅限启用时)简单的密码验证适合全体类型的命令EXISTS key 判断一个键是否存在;存在返回 1;否则返回0;DEL key 删除某个key,或是一系列key;DEL key1 key2 key3 key4TYPE key 返回某个key元素的数据类型 ( none:不存在,string:字符,list,set,zset,hash)KEYS pattern 返回匹配的key列表 (KEYS foo*:查找foo开头的keys)RANDOMKEY 随机获得一个已经存在的key,如果当前数据库为空,则返回空字符串RENAME oldname newname更 阅读全文

Redis 查询

2012-03-15 12:56 by xlw, 2817 阅读, 收藏, 编辑
摘要: 字符串类型是Redis中最为基础的数据存储类型,它在Redis中是二进制安全的,这便意味着该类型可以接受任何格式的数据,如JPEG图像数据或Json对象描述信息等。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。 1. SET/GET/APPEND/STRLEN:/> redis-cli#执行Redis客户端工具。 redis 127.0.0.1:6379>exists mykey#判断该键是否存在,存在返回1,否则返回0。 (integer) 0 redis 127.0.0.1:6379>append mykey "hello" # 阅读全文

Redis容量及使用规划

2012-03-15 12:23 by xlw, 367 阅读, 收藏, 编辑
摘要: 在使用Redis过程中,我们发现了不少Redis不同于Memcached,也不同于MySQL的特征。(本文主要讨论Redis未启用VM支持情况)1. SchemaMySQL: 需事先设计Memcached: 无需设计Redis: 小型系统可以不用,但是如果要合理的规划及使用Redis,需要事先进行类似如下一些规划数据项: value保存的内容是什么,如用户资料Redis数据类型: 如String, List数据大小: 如100字节记录数: 如100万条(决定是否需要拆分)⋯⋯上面的规划就是一种schema,为什么Redis在大型项目需要事先设计schema?因为Redis服务器有容量限制,数据 阅读全文