`
nlslzf
  • 浏览: 1026476 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Redis 起步

 
阅读更多

http://www.cnblogs.com/shanyou/archive/2012/01/28/2330451.html

dis和JQuery一样是纯粹为应用而产生的,这里记录的是在CentOS 5.7上学习入门文章:

1.Redis简介

redis Redis是一个key-value存储系统。和Memcached类似,但是解决了断电后数据完全丢失的情况,而且她支持更多无化的value类型,除了和string外,还支持lists(链表)、sets(集合)和zsets(有序集合)几种数据类型。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。

2.Redis的性能

下面是官方的bench-mark数据:

  • The test was done with 50 simultaneous clients performing 100000 requests.
  • The value SET and GET is a 256 bytes string.
  • The Linux box is running Linux 2.6, it’s Xeon X3320 2.5Ghz.
  • Text executed using the loopback interface (127.0.0.1).

    Results: about 110000 SETs per second, about 81000 GETs per second.

更多详细数据请见官方bench-mark page(http://code.google.com/p/redis/wiki/Benchmarks

3.安装Redis

Redis的代码遵循ANSI-C编写,可以在所有POSIX系统(如Linux, *BSD, Mac OS X, Solaris等)上安装运行。而且Redis并不依赖任何非标准库,也没有编译参数必需添加。redis的安装出奇的简单,这可能也是他风靡的一个原因,让人很容易上手,不像某些东西,编译阶段就能让人完全绝望。

先去官网下载源码:

wget http://redis.googlecode.com/files/redis-2.4.6.tar.gz

解压:

tar –zxvf redis-2.4.6.tar.gz

编译

需要说明的事,redis的安装非常简单,已经有现成的Makefile文件,直接运行make命令即可。

make

make install

Redis 由四个可执行文件:redis-benchmarkredis-cliredis-serverredis-stat 这四个文件,加上一个redis.conf就构成了整个redis的最终可用包。它们的作用如下:

  • redis-server:Redis服务器的daemon启动程序
  • redis-cli:Redis命令行操作工具。当然,你也可以用telnet根据其纯文本协议来操作
  • redis-benchmark:Redis性能测试工具,测试Redis在你的系统及你的配置下的读写性能
  • redis-stat:Redis状态检测工具,可以检测Redis当前状态参数及延迟状况

现在就可以启动redis了,redis只有一个启动参数,就是他的配置文件路径。

redis-server /etc/redis.conf

注意,默认复制过去的redis.conf文件的daemonize参数为no,所以redis不会在后台运行,这时要测试,我们需要重新开一个终端。修改为yes则为后台运行redis。另外配置文件中规定了pid文件,log文件和数据文件的地址,如果有需要先修改,默认log信息定向到stdout.

下面是redis.conf的主要配置参数的意义:

  • daemonize:是否以后台daemon方式运行
  • pidfile:pid文件位置
  • port:监听的端口号
  • timeout:请求超时时间
  • loglevel:log信息级别
  • logfile:log文件位置
  • databases:开启数据库的数量
  • save * *:保存快照的频率,第一个*表示多长时间,第三个*表示执行多少次写操作。在一定时间内执行一定数量的写操作时,自动保存快照。可设置多个条件。
  • rdbcompression:是否使用压缩
  • dbfilename:数据快照文件名(只是文件名,不包括目录)
  • dir:数据快照的保存目录(这个是目录)
  • appendonly:是否开启appendonlylog,开启的话每次写操作会记一条log,这会提高数据抗风险能力,但影响效率。
  • appendfsync:appendonlylog如何同步到磁盘(三个选项,分别是每次写都强制调用fsync、每秒启用一次fsync、不调用fsync等待系统自己同步)

这时你可以打开一个终端进行测试了,配置文件中默认的监听端口是6379

我们可以开启一个Redis客户端进行测试

[root@SNDA-192-168-1-114 ~]# redis-cli 
Could not connect to Redis at 127.0.0.1:6379: Connection refused 
not connected> exit 
[root@SNDA-192-168-1-114 ~]# redis-server /etc/redis.conf 
[root@SNDA-192-168-1-114 ~]# redis-cli 
redis 127.0.0.1:6379> quit

4.redis数据结构

redis 的作者antirez曾称其为一个数据结构服务器(data structures server),这是一个非常准确的表述,redis的所有功能就是将数据以其固有的几种结构保存,并提供给用户操作这几种结构的接口。我们可以想象我们在各种语言中的那些固有数据类型及其操作。

redis目前提供四种数据类型:string,list,setzset(sorted set)和Hash

  • string是最简单的类型,你可以理解成与Memcached一模一个的类型,一个key对应一个value,其上支持的操作与Memcached的操作类似。但它的功能更丰富。
  • list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等。操作中key理解为链表的名字。
  • set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。
  • zset是set的一个升级版本,他在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的值调整顺序。可以理解了有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。
  • Hash数据类型允许用户用Redis存储对象类型,Hash数据类型的一个重要优点是,当你存储的数据对象只有很少几个key值时,数据存储的内存消耗会很小.更多关于Hash数据类型的说明请见: http://code.google.com/p/redis/wiki/Hashes

在官网上给出了所有支持的接口列表,并副副附有详细的介绍,地址:

http://code.google.com/p/redis/wiki/CommandReference

另外,作者还提供了一个非常贴心的web命令行模拟页面,供初学者试用redis,地址:

http://try.redis-db.com/

5.redis数据存储

redis的存储分为内存存储、磁盘存储和log文件三部分,配置文件中有三个参数对其进行配置。

save seconds updatessave配置,指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。

appendonly yes/no appendonly配置,指出是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面的save条件来同步的,所以有的数据会在一段时间内只存在于内存中。

appendfsync no/always/everysec appendfsync配置,no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次。

6.redis主从配置

redis支持master-slave的主从配置,配置方法是在从机的配置文件中指定slaveof参数为主机的ip和port即可

7.redis起步(链接整理)

项目首页,下方是各种语言支持列表:

http://code.google.com/p/redis/

作者在wiki中给出了一个非常好的例子,以使我们可以快速上手,地址:

http://code.google.com/p/redis/wiki/TwitterAlikeExample

同时作者推荐的另一个教程,地址:

http://labs.alcacoop.it/doku.php?id=articles:redis_land

一个redis爱好者创建的相关问题讨论网站:

http://www.rediscookbook.org/

为什么使用 Redis及其产品定位

http://www.infoq.com/cn/articles/tq-why-choose-redis

Redis内存使用优化与存储

http://www.infoq.com/cn/articles/tq-redis-memory-usage-optimization-storage

<!--EndFragment-->

<!--EndFragment-->

分享到:
评论

相关推荐

    云资源下载V1.2

    (6)redis起步 (7)Redis容量及使用规划 (8)Redis新的存储模式diskstore (9)Redis学习笔记 (11)redis应用场景 (12)redis应用之日志汇总 (13)构建可扩展微博架构 (14)浅谈redis的键值设计 (15)浅谈redis数据库的键值...

    Redis 源码分析 2. 分析起步

    Redis 的源码分析第二部分 By SinSay

    Redis V3.0 中文文档

    Redis 列表起步. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 列表的通用场景(Common use cases) . . . . . . . . . . . . . . . ...

    Redis 3.0 中文版 - v1.1.pdf

    Redis 列表起步. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 列表的通用场景(Common use cases) . . . . . . . . . . . . . . . ...

    Redis-Synyed:Redis跨机房同步系统

    ## Redis跨机房同步系统注:该项目目前为起步阶段,从0-1的过程本人正在全力开发中,如果您有好的想法或者建议欢迎与我联系qq 805005024也欢迎给本项目提PR ####最新进展:目前已经实现了单Agent单源Redis单目标...

    Codeigniter 4.0-dev 版源码学习笔记之五——相对于 3.x 的变化

    CI 为了追上“大家”的脚步,这次跨了一大步,尽量使用了更多的流行设计理念,甚至连 PHP 的支持版本都是从 7 开始起步的。我在之前阅读源码的同时也发现了很多变化的地方,在此把已经发现的列举出来,不过肯定是不...

    JAVA超全面试突击包-答案讲义

    Spring Boot:包括Spring Boot的基础知识,如自动配置和起步依赖 Spring Cloud:包括Spring Cloud的核心组件,以及如何使用Spring Cloud来构建微服务架构。 Redis:包括为什么要用Redis,有哪些高级功能 MySQL:包括...

    spring boot 实践学习案例,与其它组件整合

    - Spring Boot 基础知识,包括SpringBoot起步、配置详解、aop、filter、拦截器、监听、启动器、全局异常处理、外部Tomcat启动、HTTPS、监控 等。 - springboot-data - Spring Boot 数据库操作,包括SpringJDBC、...

    从零开始学Spring Boot

    1.3 spring boot起步之Hello World 1.4 Spring Boot返回json数据 1.5 Spring Boot热部署 1.6 Spring Boot使用别的json解析框架 1.7 全局异常捕捉 1.8 Spring Boot datasource - mysql 1.9 JPA - Hibernate 1.10 使用...

    这是一个用SpringBoot+JPA打造的基于微信服务号平台的点餐系统+源代码+文档说明+数据库sql

    可以看到这和我们传统的web项目启动的方式不一样,我们没有配置tomcat等之类的服务器,因为Spring Boot已将服务器引入起步依赖中了。 7. 经过以上步骤,我们的项目应该已经可以启动起来了。访问:`...

    Java技术转型必备数据之二.rar

    SpringBoot ...入门、自定义配置、测试、Actuator、SpringBoot起步依赖、属性配置 起源、基础、MVC框架、视图技术、数据库访问、JPA、配置、REST、MongoDB、Redis、Cache、ES、SpringSession、ZooKeeper

    nosql 入门教程

    10.1.1 GAE Python SDK:安装、设置和起步 161 10.1.2 使用Python进行基本的GAE数据建模 165 10.1.3 查询与索引 168 10.1.4 过滤和结果排序 170 10.1.5 Java App Engine SDK 172 10.2 Amazon SimpleDB 175 ...

    SpringBoot全套教程_Java微服务架构视频教程

    手把手视频详细讲解项目开发全...9. SpringBoot整合Redis 阶段二: SpringBoot核心原理 1. 起步依赖原理分析 2. 自动配置原理解析 3. 自定义起步依赖并实现自动配置 4. 事件监听 5. 初始化流程 6. SpringBoot服务监控

    marquee:免费PHP微观抽象,用于通用的数据库交互,支持各种数据源

    选取框数据库层概述Marquee是免费的多数据库抽象层和ORM。 其目的是在使用智能数据源的同时允许通用代码模式。... 希望您发现我的工作使您能够快速起步并进行下一个项目。 | 免责声明:尚未投入生产尽管我为这个

    Twemproxy 安装过程

    redis集群代理Twemproxy 安装过程,Twemproxy是一个专门为了这种nosql数据库设计的一款代理工具软件,这个工具软件最大的特征是可以实现数据的分片处理。所谓的分片指的是根据一定的算法将要保存的数据保存到不同的...

    Docker 容器编排利器Compose(起步篇)

    一个大型的Docker组成的微服务应用中,容器的数量是非常庞大的,如果依赖传统的人工配置方式进行维护,对于开发和运维来说简直就是噩梦。Compose的出现正是为了解决这个问题。 Compose简介 Compose的前身是Fig,Fig...

    springboot基于vue的工厂车间管理系统的设计.zip

    它提供了大量的起步依赖,可以快速地构建出企业级的应用程序。在工厂车间管理系统中,Spring Boot负责处理业务逻辑、数据库交互、安全性、服务接口(API)的提供等后端功能。前端(Vue.js): Vue.js是一个轻量级的...

    毕业设计练手小项目(众筹网站的设计与实现待完善)

    该平台的实现,使中小型公司以及个人的融资更加简单,更加便捷,使其能够快速获取产品生产的起步资金。并且现今网络众筹在国内正处于萌芽阶段,该系统的设计产生以及实现也是对网络众筹这种新兴的互联网金融模式的一...

Global site tag (gtag.js) - Google Analytics