`
chencvgk
  • 浏览: 16709 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Redis 基本介绍

 
阅读更多

Redis简介

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

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)

安装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-benchmark、redis-cli、redis-server、redis-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

redis数据结构

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

redis目前提供四种数据类型:string,list,set及zset(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/


redis数据存储

redis的存储分为内存存储、磁盘存储和log文件三部分,配置文件中有三个参数对其进行配置。
save seconds updates,save配置,指出在多长时间内,有多少次更新操作,就将数据同步到数据文件。这个可以多个条件配合,比如默认配置文件中的设置,就设置了三个条件。
appendonly yes/no ,appendonly配置,指出是否在每次更新操作后进行日志记录,如果不开启,可能会在断电时导致一段时间内的数据丢失。因为redis本身同步数据文件是按上面的save条件来同步的,所以有的数据会在一段时间内只存在于内存中。
appendfsync no/always/everysec ,appendfsync配置,no表示等操作系统进行数据缓存同步到磁盘,always表示每次更新操作后手动调用fsync()将数据写到磁盘,everysec表示每秒同步一次。

redis主从配置

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


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


分享到:
评论

相关推荐

    redis的基本操作命令.docx

    本文将详细介绍 Redis 的基本操作命令,包括与服务器的沟通、查看当前数据库中 key 的数目、切换库、获取配置信息、删除数据、退出 Redis 等。 一、与服务器的沟通命令 Ping 命令用于检查 Redis 服务器是否正常...

    Redis介绍的课件

    Redis是一种开源的高性能键值对存储数据库,它支持数据的网络访问、基于内存的数据处理方式,并且以NoSQL的形式出现。...通过上述介绍,希望使用者能够对Redis有一个基本的了解,并能够开始尝试安装和使用它。

    phpredis-2.1.3.zip + Redis客户端介绍+ php调用Redis教程 +Redis相关方法说明

    1 基本相关操作 connect open 链接redis服务 参数host: string 服务地址 port: int 端口号 timeout: float 链接时长 可选 默认为 0 不限链接时间 注: 在redis conf中也有时间 默认为300 pconnect popen 不会主动关闭...

    Redis讲解(刚刚接触REDIS的看看)

    ### Redis 的基本概念 1. **键值数据类型**: - **字符串(Strings)**:最基础的数据类型,可存储任意二进制数据,如文本、数字等。 - **散列(Hashes)**:用于存储键值对的集合,特别适合表示对象。 - **列表...

    Redis基本命令.zip

    本文将介绍Redis的基本命令和示例代码。 Redis简介: Redis是一个高性能的键值对数据库,支持多种数据结构,如字符串、列表、集合、散列等。它具有高速读写、持久化、分布式等特点。 安装和配置: 1. 下载并安装...

    java对redis的基本操作

    #### 二、Java程序实现Redis基本操作 1. **程序基本结构**: - 为了方便地与Redis进行交互,可以创建一个`RedisClient`类来封装各种操作。 2. **主要类**: - **功能类**:`RedisClient` - 包含了非切片(单...

    Redis基本命令演示.zip

    本文将介绍Redis的基本命令和示例代码。 Redis简介: Redis是一个高性能的键值对数据库,支持多种数据结构,如字符串、列表、集合、散列等。它具有高速读写、持久化、分布式等特点。 安装和配置: 1. 下载并安装...

    redis基本使用已经应用场景

    本文将对 Redis 的基本概念、特点、应用场景进行详细的介绍。 什么是 NoSQL NoSQL 即 Not Only SQL,指的是非关系型数据库。随着大数据时代的来临,传统的关系型数据库无法满足对大规模数据的处理要求。NoSQL ...

    MemCache和Redis缓存介绍

    **MemCache和Redis缓存介绍** 在IT行业中,缓存技术是提高系统性能和响应速度的关键因素之一。MemCache和Redis是两种广泛使用的分布式内存缓存系统,它们能够有效地存储和检索数据,减轻数据库的负担,提升应用的...

    redis介绍文档学习

    ### Redis介绍文档学习...以上就是关于Redis的基本介绍、特点、优势、与Memcached的对比、持久化机制、主从复制、哨兵以及集群架构的相关知识点。通过学习这些内容,初学者可以更好地理解Redis的工作原理和应用场景。

    Redis介绍及实践分享.

    此外,还可以通过内置客户端与Redis进行交互,执行基本的键值存储命令。 Redis的优点主要体现在以下几方面: 1. 极高的性能:能够以每秒数十万次的读写速度运行。 2. 丰富的数据结构:提供了如字符串、列表、哈希、...

    php redis基本使用

    **PHP Redis 基本使用教程** Redis 是一个高性能的键值存储系统,常用于缓存、消息队列以及数据库等功能。PHP 提供了多种方式与 Redis 进行交互,如 `predis` 和 `redis` 扩展。本文将详细介绍如何在 PHP 中配置和...

    redis详细介绍

    这种设计允许Redis不仅能够存储基本的数据类型,还能存储更复杂的结构。例如: - **字符串**:最基础的数据类型,用于简单的键值对存储。 - **哈希**:用于存储字段-值对映射。 - **列表**:用于按照插入顺序保存...

    redis基本命令.zip

    本压缩包文件“redis基本命令.zip”包含了一份关于Redis基本命令的介绍,下面我们将详细探讨Redis中的关键命令。 首先,让我们打开“redis基本命令.md”文档,它通常会以Markdown格式列出Redis的各种命令。在Redis...

    redis内存模型介绍

    Redis支持五种基本的数据类型: - **String类型**: 最基础的数据类型,二进制安全,可以包含任何数据。 - `SET`: 设置Key对应的值。 - `SETNX`: 只有在Key不存在时才设置其值。 - `GET`: 获取Key的值。 - **...

    redis在win上的运行脚本redis.bat

    下面将详细介绍Redis在Windows上的安装、配置以及使用这个批处理脚本的方法。 首先,我们需要下载Redis的Windows版本。Redis官方并不直接提供Windows二进制发行版,但社区有一些移植项目,如MSOpenTech Redis或者...

    redis-6.2.14-win-amd64

    **Redis的基本概念:** 1. **键值对(Key-Value)**:Redis的核心是键值对存储,键是唯一的字符串标识,值可以是多种数据类型,如字符串、哈希、列表、集合和有序集合。 2. **数据类型**:Redis支持丰富的数据结构,...

    redis.conf Redis配置文件下载

    redis.conf Redis配置文件 下载 redis.conf 配置详解 Redis配置文件redis.conf 详解1.基本配置内存单位的表示# 1k => 1000 bytes# ...Redis 的详细介绍Redis 的下载地址

    redis实战 红豆出品 兄弟连redis

    一、Redis基本使用 1.1 Key-Value存储系统简介 Key-Value存储系统是一种数据结构,它将数据存储为一系列的键值对。每个键都是唯一的,而每个键都与一个值相对应。这种系统非常适合于实现缓存机制。Redis、...

Global site tag (gtag.js) - Google Analytics