码迷,mamicode.com
首页 > 其他好文 > 详细

redis实战笔记(1)

时间:2017-08-20 00:39:14      阅读:234      评论:0      收藏:0      [点我收藏+]

标签:客户   hit   重写   互动   对比   电话号码   扩展   span   包含   

1章 初识Redis
 
本章主要内容
1.Redis与其他软件的相同之处和不同之处
2.Redis的用法
3.使用Python示例代码与Redis进行简单的互动
4.使用Redis解决实际问题
 
Redis是一个远程内存数据库, 它不仅性能强劲, 而且还具有复制特性以及为解决问题而生的独一无二的数据模型。 Redis提供了 5种不同类型的数据结构, 各式各样的问题都可以很自 然地映射到这些数据结构上: Redis的数据结构致力于帮助用户解决问题, 而不会像其他数据库那样, 要求用户扭曲问题来适应数据库。 除此之外, 通过复制、 持久化( persistence) 和客户端分片( client-side sharding) 等特性, 用户可以很方便地将Redis扩展成一个能够包含数百GB数据、 每秒处理上百万次请求的系统。
 
笔者第一次使用Redis是在一家公司里面, 这家公司需要对一个保存了 6万个客户联系方式的关系数据库进行搜索, 搜索可以根据名字、 邮件地址、 所在地和电话号码来进行, 每次搜索需要花费10~15秒的时间。 在花了一周时间学习 Redis的基础知识之后, 我使用Redis重写了一个新的搜索引 擎, 最终这个新的搜索系统不仅可以根据名字、 邮件地址、所在地和电话号码等信息来过滤和排序客户联系方式, 并且每次操作都可以在50毫秒之内完成, 这比原来的搜索系统足足快了 200 倍。
 
1.1 Redis简介
Redis是一个速度非常快的非关系数据库( non-relational database) , 它可以存储键( key) 与5种不同类型的值( value) 之间的映射( mapping) , 可以将存储在内存的键值对数据持久化到硬盘, 可以使用复制特性来扩展读性能, 还可以使用客户端分片①来扩展写性能, 接下来的几节将分别介绍Redis的这几个特性。
 
1.1.1 Redis与其他数据库和软件的对比
如果你熟悉关系数据库, 那么你肯定写过用来关联两个表的数据的SQL查询。 而Redis则属于人们常说的NoSQL数据库或者非关系数据库: Redis不使用表, 它的数据库也不会预定义或者强制去要求用户对Redis存储的不同数据进行关联。
 
memcached对比
两者都可用于存储键值映射, 彼此的性能也相差无几, 但是Redis能够自 动以两种不同的方式(AOF和?)将数据写入硬盘, 并且Redis除了能存储普通的字符串键之外, 还可以存储其他4种数据结构, 而memcached只能存储普通的字符串键。
 
这些不同之处使得Redis可以用于解决更为广泛的问题, 并且既可以用作主数据库( primary database) 使用, 又可以作为其他存储系统的辅助数据库( auxiliary database) 使用。
 
1-1 一些数据库和缓存服务器的特性与功能
技术分享
 技术分享
技术分享
 技术分享技术分享
技术分享
 
1.1.2 附加特性
在使用类似Redis这样的内存数据库时, 一个首先要考虑的问题就是“当服务器被关闭时, 服务器存储的数据将何去何从呢?
 
”Redis拥有两种不同形式的持久化方法, 它们都可以用小而紧凑的格式将存储在内存中的数据写入硬盘:
第一种持久化方法为时间点转储( point-in-timedump) , 转储操作既可以在“指定时间段内有指定数量的写操作执行”这
一条件被满足时执行, 又可以通过调用两条转储到硬盘( dump-todisk) 命令中的任何一条来执行;
 
第二种持久化方法将所有修改了数据库的命令都写入一个只追加( append-only) 文件里面, 用户可以根据数据的重要程度, 将只追加写入设置为从不同步( sync) 、 每秒同步一次或者每写入一个命令就同步一次。 我们将在第4章中更加深入地讨论这些持久化选项。
 
另外, 尽管Redis的性能很好, 但受限于Redis的内存存储设计, 有时候只使用一台Redis服务器可能没有办法处理所有请求。 因此, 为了扩展Redis的读性能, 并为Redis提供故障转移( failover) 支持,
Redis实现了主从复制特性: 执行复制的从服务器会连接上主服务器, 接收主服务器发送的整个数据库的初始副本( copy) ; 之后主服务器执行的写命令, 都会被发送给所有连接着的从服务器去执行, 从而实时地更新从服务器的数据集。 因为从服务器包含的数据会不断地进行更新, 所以客户端可以向任意一个从服务器发送读请求, 以此来避免对主服务器进行集中式的访问。 我们将在第4章中更加深入地讨论Redis从服务器。
 

 
 
 
 
 
 
 
 
 
 

 

redis实战笔记(1)

标签:客户   hit   重写   互动   对比   电话号码   扩展   span   包含   

原文地址:http://www.cnblogs.com/crazylqy/p/7398329.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!