上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 59 下一页
  2013年2月6日
摘要: 毫无疑问,Redis开创了一种新的数据存储思路,使用Redis,我们不用在面对功能单调的数据库时,把精力放在如何把大象放进冰箱这样的问题上,而是利用Redis灵活多变的数据结构和数据操作,为不同的大象构建不同的冰箱。希望你喜欢这个比喻。下面是一篇新鲜出炉的文章,其作者是Redis作者@antirez,他描述了Redis比较适合的一些应用场景,NoSQLFan简单列举在这里,供大家一览:1.取最新N个数据的操作比如典型的取你网站的最新文章,通过下面方式,我们可以将最新的5000条评论的ID放在Redis的List集合中,并将超出集合部分从数据库获取使用LPUSH latest.comments& 阅读全文
posted @ 2013-02-06 10:38 一个人的天空@ 阅读(3860) 评论(2) 推荐(1) 编辑
  2013年2月5日
摘要: Redis提供了丰富的数据类型,比起关系型数据库或者简单的Key-Value存储(比如Memcached)来,Redis的数据模型与实际应用的数据模型更相近。比如下面说到的好友关系的存储,原作者使用了Redis的 Sets(集合)数据结构。具体存储方式如下:对于每一个用户,其关注关系存储两份列表,一份为此用户关注的人的UID列表,另一份为此用户粉丝的UID列表,这两个列表都使用Sets(集合)。比如对于用户ID为123的用户,graph:user:123:following 保存的是其关注人的列表,graph:user:1:followed_by 保存的是关注他的人的列表。下面是一个PHP代码 阅读全文
posted @ 2013-02-05 11:58 一个人的天空@ 阅读(848) 评论(0) 推荐(0) 编辑
摘要: 丰富的数据结构使得redis的设计非常的有趣。不像关系型数据库那样,DEV和DBA需要深度沟通,review每行sql语句,也不像memcached那样,不需要DBA的参与。redis的DBA需要熟悉数据结构,并能了解使用场景。下面举一些常见适合kv数据库的例子来谈谈键值的设计,并与关系型数据库做一个对比,发现关系型的不足之处。用户登录系统记录用户登录信息的一个系统, 我们简化业务后只留下一张表。关系型数据库的设计mysql> select * from login;+---------+----------------+-------------+------------------- 阅读全文
posted @ 2013-02-05 11:25 一个人的天空@ 阅读(6034) 评论(3) 推荐(3) 编辑
摘要: 本文来自Redis在Google Group上的一个问题,有一位同学发贴求助,说要解决如下的一个问题:他有一个IP范围对应地址的列表,现在需要给出一个IP的情况下,迅速的查找到这个IP在哪个范围,也就是要判断此IP的所有地。这个问题引来了Redis作者Salvatore Sanfilippo(@antirez)的回答。解答如下:例如有下面两个范围,10-20和30-40A_start 10, A_end 20B_start 30, B_end 40我们将这两个范围的起始位置存在Redis的Sorted Sets数据结构中,基本范围起始值作为score,范围名加start和end为其value值 阅读全文
posted @ 2013-02-05 11:03 一个人的天空@ 阅读(619) 评论(0) 推荐(0) 编辑
摘要: 本文会讨论一下Redis的复制功能以及Redis复制机制本身的优缺点以及集群搭建问题。Redis复制流程概述Redis的复制功能是完全建立在之前我们讨论过的基于内存快照的持久化策略基础上的,也就是说无论你的持久化策略选择的是什么,只要用到了Redis的复制功能,就一定会有内存快照发生,那么首先要注意你的系统内存容量规划,原因可以参考我上一篇文章中提到的Redis磁盘IO问题。Redis复制流程在Slave和Master端各自是一套状态机流转,涉及的状态信息是:Slave 端:REDIS_REPL_NONEREDIS_REPL_CONNECTREDIS_REPL_CONNECTEDMaster端 阅读全文
posted @ 2013-02-05 10:54 一个人的天空@ 阅读(830) 评论(0) 推荐(0) 编辑
  2013年2月1日
摘要: Redis 在运行一段时间后,发现有部分的数据确实没有缓存的必要,这时,切换数据库当然是一个办法。还有办法,flush掉所有的数据。flush太危险了。所以。。还是删除key吧,比较安全一点。比如我删除keys "abc:*"的key在cli里不能直接操作,但是可以./redis-cli -n 0 keys "abc:*" | xargs ./redis-cli -n 0 del这样就可以了。 阅读全文
posted @ 2013-02-01 11:02 一个人的天空@ 阅读(3759) 评论(0) 推荐(0) 编辑
  2013年1月30日
摘要: 事务的四个特性1、原子性(atomicity)原子性是指整个数据库事务是不可分割的工作单位2、一致性(consistency)一致性指事务将数据库从一种状态转变为下一种一致的状态。在事务开始之前和事务结束之后,数据库的完整性约束没有被破坏。3、隔离性(isolation)一个事务的影响在该事务提交之前对其他事务都不可见------这通过锁来实现4、持久性(durability)事务一旦提交,其结果就是永久性的事务的实现隔离性通过Mysql InnoDB锁就可以实现,原子性、一致性、持久性通过数据库的redo和undo来完成隐式提交的SQL语句以下这些SQL语句会产生一个隐式的提交操作,即执行完 阅读全文
posted @ 2013-01-30 15:37 一个人的天空@ 阅读(329) 评论(0) 推荐(0) 编辑
摘要: 锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的 计算资源(如CPU、RAM、I/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一 个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。本章我们着重讨论MySQL锁机制 的特点,常见的锁问题,以及解决MySQL锁问题的一些方法或建议。MySQL锁概述相对其他数据库而言,MySQL的锁机制比较简单,其最显著的特点是不同的存储引擎支持不同的锁机制。比如,MyISAM和MEMORY存储引擎采用的是表级锁(t 阅读全文
posted @ 2013-01-30 15:32 一个人的天空@ 阅读(7894) 评论(1) 推荐(0) 编辑
摘要: InnoDB锁问题InnoDB与MyISAM的最大不同有两点:一是支持事务(TRANSACTION);二是采用了行级锁。行级锁与表级锁本来就有许多不同之处,另外,事务的引入也带来了一些新问题。下面我们先介绍一点背景知识,然后详细讨论InnoDB的锁问题。背景知识1.事务(Transaction)及其ACID属性事务是由一组SQ语句组成的逻辑处理单元,事务具有以下4个属性,通常简称为事务的ACID属性。 原子性(Atomicity):事务是一个原子操作单元,其对数据的修改,要么全都执行,要么全都不执行。 一致性(Consistent):在事务开始和完成时,数据都必须保持一致状态。这意味着所有相关 阅读全文
posted @ 2013-01-30 15:28 一个人的天空@ 阅读(13176) 评论(0) 推荐(0) 编辑
摘要: Mysql常用存储引擎的锁机制MyISAM和MEMORY采用表级锁(table-levellocking)BDB采用页面锁(page-levelocking)或表级锁,默认为页面锁InnoDB支持行级锁(row-levellocking)和表级锁,默认为行级锁各种锁特点表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生冲突的概率最高,并发度最低行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高页面锁:开销和加锁时间介于表锁和行锁之间;会出现死锁;锁定粒度介于表锁和行锁之间,并发度一般InnoDB存储引擎的锁InnoDB存储引擎实现了如下两种锁1、共享锁(S 阅读全文
posted @ 2013-01-30 12:00 一个人的天空@ 阅读(7552) 评论(0) 推荐(1) 编辑
摘要: MySQL 数据表主要支持六种类型 ,分别是:BDB、HEAP、ISAM、MERGE、MYISAM、InnoBDB。这六种又分为两类,一类是”事务安全型”(transaction-safe),包括BDB和InnoDB;其余都属于第二类,称为”非事务安全型”(non-transaction-safe)。BDB全称是”Brekeley DB”,它是Mysql最早的具有事务能力的表的类型,由Sleepycat Software (http://www.sleepycat.com)开发。它提供了事务控制能力功能,它确保一组命令全部执行成功,或者当任何一个命令出现错误时所有命令的结果都被回退,可以想像在 阅读全文
posted @ 2013-01-30 10:43 一个人的天空@ 阅读(14571) 评论(0) 推荐(0) 编辑
  2013年1月28日
摘要: <Directory>...</Directory> -- 设定指定目录的访问权限<Files>...</Files> -- 设置应用于指定文件的指令示例:拒绝访问以‘-ht’开头的文件<Files ~"^\.ht">Order allow,denyDeny from all</Files><Location>...</Location> -- 设置应用于特定URL的指令,容器包含只应用于特定URL的指令<VirtualHost>...</VirtualHost 阅读全文
posted @ 2013-01-28 15:58 一个人的天空@ 阅读(364) 评论(0) 推荐(0) 编辑
摘要: 1. 禁止访问某些文件/目录增加Files选项来控制,比如要不允许访问 .inc 扩展名的文件,保护php类库:<Files ~ "\.inc$"> Order allow,deny Deny from all</Files>禁止访问某些指定的目录:(可以用 <DirectoryMatch> 来进行正则匹配)<Directory ~ "^/var/www/(.+/)*[0-9]{3}"> Order allow,deny Deny from all</Directory>通过文件匹配来进行禁止, 阅读全文
posted @ 2013-01-28 15:56 一个人的天空@ 阅读(3486) 评论(1) 推荐(0) 编辑
摘要: 一般在第一次安装进一般不会遇到这种问题,在重新编译时会遇到该问题以下是我根据错误提示进行纠正安装的cd httpd-2.2.2安装APRcd srclib/apr#./configure --prefix=/usr/local/apr#make#make install安装APR-utilcd srclib/apr-util#./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr#make#make install# ./configure --prefix=/usr/local/apache--enable-so 阅读全文
posted @ 2013-01-28 11:05 一个人的天空@ 阅读(440) 评论(0) 推荐(0) 编辑
  2013年1月25日
摘要: 服务器篇--之 LAMP安装手记Server OS: Cent OSApache: http-2.2.11PHP:PHP-5.2.9Mysql: 5.1.32GD: gd-2.0.35JPEG:jpeg-6blibpng:libpng-1.2.35libxml2:libxml2-2.6.19freetype:freetype-2.3.9ZendOptimizer:ZendOptimizer-3.3.0a-linux-glibc21-i386记得安装Linux的时候不要安装系统默认的apache,mysql和php以及相关的软件。已经安装的请用rpm -e * 删除已经安装的包。一,安装apa. 阅读全文
posted @ 2013-01-25 14:16 一个人的天空@ 阅读(569) 评论(0) 推荐(0) 编辑
上一页 1 ··· 17 18 19 20 21 22 23 24 25 ··· 59 下一页