`
wbj0110
  • 浏览: 1598689 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

Redis 介绍与使用

阅读更多

数据库主要类型有对象数据库,关系数据库,键值数据库等等,对象数据库太超前了,现阶段不提也罢;关系数据库就是平常说的MySQL,PostgreSQL这些熟的不能再熟的东西,至于键值数据库则是本文要着重说的,其代表主要有MemcacheDBTokyo Cabinet等等。

Redis本质上也是一种键值数据库的,但它在保持键值数据库简单快捷特点的同时,又吸收了部分关系数据库的优点。从而使它的位置处于关系数据库和键值数 据库之间。Redis不仅能保存Strings类型的数据,还能保存Lists类型(有序)和Sets类型(无序)的数据,而且还能完成排序(SORT) 等高级功能,在实现INCR,SETNX等功能的时候,保证了其操作的原子性,除此以外,还支持主从复制等功能。

详细描述参见官方手册,同时,官方提供了一个名为Retwis的项目的源代码,可以对照着官方介绍学习,注意其中关于Data Layout的描述,其他没什么。

项目实践中,多以关系数据库为主,不过合理的使用Redis这样的键值数据库,往往能扬长避短,比如说实现一个类似消息队列的功能,对MySQL来说,除非使用Q4M,否则很难满足高并发请求,不过对Redis来说,通过内建的Lists支持,消息队列就是小菜一碟。

Redis的安装

tar zxvf redis-version.tar.gz
cd redis-version
make

由于没有make install,所以得把源代码目录里的关键文件手动复制到适当的位置:

cp redis.conf /etc/
cp redis-benchmark redis-cli redis-server /usr/bin/

如果内存情况比较紧张的话,需要设定内核参数:

echo 1 > /proc/sys/vm/overcommit_memory

然后编辑redis.conf配置文件(/etc/redis.conf),按需求做出适当调整,比如:

daemonize yes
logfile /dev/null

如果要记录日志的话,最好先调整loglevel到一个合适的级别,然后设定logfile,如果不需要,则可以像上面这样直接把日子丢弃到/dev/null里,还有一点,缺省情况下,数据文件dump.rdb会被生成到当前目录,可以通过dir参数设定合适的目录。

此外,如果你决定把Redis用于产品环境,还要注意maxmemory选项,因为Redis在启动时会把所有数据加载到内存中,所以设定maxmemory相对安全。

接下来直接启动服务就可以了,只有配置文件一个参数:

redis-server /etc/redis.conf

确认运行了之后,可以用redis-benchmark命令测试看看,还可以通过redis-cli命令实际操作一下,比如:

redis-cli set foo bar
OK
redis-cli get foo
bar

在设置键对应的值的时候,按照协议的规定是要提供数据大小这个参数的,上面的redis-cli命令之所以没有提供这个参数是因为redis-cli本身进行了封装。

可以通过telnet来验证一点:

telnet 127.0.0.1 6379
Trying 127.0.0.1…
Connected to localhost.localdomain (127.0.0.1).
Escape character is ‘^]’.
set foo 3
bar
+OK
get foo
$3
bar
^]
telnet> quit
Connection closed.

更多命令介绍参考文档介绍

Redis源代码里附带了多种客户端的扩展,比如说php(client-libraries/php),这是一个纯PHP的实现方案,也有二进制版本的实现(phpredis)。其他语言即便没有现成的扩展实现,也可以自己按照协议规范写一个扩展,应该不是什么难事。

Redis内存要求很高,如果你的数据量很大的话,可能会导致系统使用swap,这会使性能急剧下降。此时更好的方法是通过consistent hashing把数据分布到多个服务器上,文档上给出了简单的例子解释:

For example imagine to have N Redis servers, server-0, server-1, …, server-N. You want to store the key “foo”, what’s the right server where to put “foo” in order to distribute keys evenly among different servers? Just perform the crc = CRC32(“foo”), then servernum = crc % N (the rest of the division for N). This will give a number between 0 and N-1 for every key. Connect to this server and store the key.

在线演示:
http://try.redis-db.com/

参考链接:

http://redis.io/

http://github.com/jdp/redisent/tree/master
http://github.com/owlient/phpredis
http://rediska.geometria-lab.net/

分享到:
评论

相关推荐

    四、Redis 介绍与使用

    四、Redis 介绍与使用

    Redis介绍与使用.pptx

    Redis客户端`redis-cli`提供了与服务器交互的命令行界面,用于执行各种操作,如设置和获取键值、删除键值等。例如,使用`set`命令设置键`name`的值为`bhz`,使用`get`获取键`name`的值,若要删除键`name`则使用`del`...

    JavaWeb之Linux与Redis

    #### 三、Redis介绍与使用 ##### 3.1 Redis概述 Redis是一种非关系型数据库,主要用作内存中的数据结构存储系统。它支持多种数据结构,如字符串、哈希、列表、集合、有序集合等,并且提供了非常高的读写速度。 **...

    Redis介绍与实现机制

    Redis是Remote Dictionary Server的缩写,它使用字典结构存储数据,并允许其他应用通过TCP协议读写字典中的内容。同大多数脚本语言中的字典一样,Redis字典中的键值除了可以是字符串,还可以是其他数据类型。Redis ...

    Redis介绍的课件

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

    Redis新手学习使用介绍

    总的来说,Redis新手入门需要掌握的基本内容包括:Redis的安装与启动、基本数据类型和操作命令、Java客户端的使用、数据持久化与高可用性策略,以及性能优化技巧。通过深入学习和实践,你将能够熟练地在实际项目中...

    redis++使用说明,windows下编译redis-plus-plus

    在这篇文章中,我们将详细介绍如何在Windows平台下编译Redis++,包括编译hiredis.lib和Win32_Interop.lib静态库文件的过程,然后安装Cmake并编译Redis++,最后进行lib测试验证。 首先,我们需要了解Redis++的组件...

    Redis介绍与内部实现机制PPT

    ### Redis介绍与内部实现机制详解 #### 一、Redis特性 **(一)存储结构** Redis,即Remote Dictionary Server的缩写,是一种基于字典结构的高性能键值存储系统。这种设计使得Redis能够高效地处理各种类型的数据...

    C# Redis 安装与使用

    在C#环境下使用Redis,我们可以借助StackExchange.Redis库,它提供了丰富的API来与Redis服务器进行交互。下面将详细介绍C#中Redis的安装、配置、基本操作以及示例。 ### 安装Redis 1. **下载服务器端**: 首先,你...

    《redis介绍》PPT课件.ppt

    redis ppt 介绍

    redis安装及使用

    以上是对Redis安装、客户端使用以及基本数据类型的详细介绍。Redis的强大不仅在于其丰富的数据结构支持,还在于其高性能、易用性和广泛的社区支持。掌握这些基础知识有助于开发者更好地利用Redis来解决实际问题。

    redis介绍,ppt介绍

    ppt格式的redis介绍,包括redis的原理,机制使用方法

    redis 搭建与使用

    本文将详细介绍Redis的搭建与使用,以及如何进行基本的配置修改。 首先,Redis的搭建分为以下几个步骤: 1. **下载Redis**:通过wget命令从官方下载最新稳定版本的Redis压缩包,例如在Linux系统中,你可以执行`...

    阿里巴巴Redis使用规范

    本文将详细介绍阿里巴巴28条Redis使用规范,涵盖了Redis性能优化、数据存储、安全、实例管理等方面的内容。 规范一:控制key的长度 为了避免Redis中的keys过长,阿里巴巴建议控制key的长度,尽量将String类型的数据...

    Mysql优化与Redis介绍

    mysql优化与redis介绍

    REDIS的安装与使用说明

    ### REDIS的安装与使用说明 #### 一、Redis简介 Redis是一种开源的键值存储系统,它提供了多种数据结构的存储方式,并且支持网络、内存数据存储、数据持久化等功能。由于其高性能和灵活性,Redis被广泛应用于缓存...

    Redis介绍及实践分享.

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

    Redis安装和使用教程

    ### Redis安装和使用教程 #### 一、Redis简介 Redis是一种功能强大的开源键值(Key-Value)数据库系统,它不仅支持内存数据存储还提供了...通过本文的介绍,读者可以了解Redis的基本概念、安装方法以及常见的使用场景。

Global site tag (gtag.js) - Google Analytics