下载地址:http://code.google.com/p/redis/
-------------------------------------------------------------------------------------
说明:
redis 是一个高性能的key-value数据库。
redis的出现,很大程度补偿了memcached这类keyvalue存储的不足,在部 分场合可以对关系数据库起到很好的补充作用。
它提供了Python,Ruby,Erlang,PHP客户端,使用很方便。问题是这个项目还很新,可能还不足够稳定,而且没有在实际的一些大型系统应用的实例。
此外,缺乏mc中批量get也是比较大的问题,始终批量获取跟多次获取的网络开销是不一样的。
性能测试结果:
SET操作每秒钟 110000 次,GET操作每秒钟 81000 次
数据库主要类型有对象数据库,关系数据库,键值数据库等等,对象数据库太超前了,现阶段不提也罢;关系数据库就是平常说的MySQL,PostgreSQL这些熟的不能再熟的东西,至于键值数据库则是本文要着重说的,其代表主要有MemcacheDB,Tokyo 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-server.exe`、`redis-cli.exe`等在内的可执行文件,以及配置文件`redis.conf`。这种方式适合于需要自定义配置或手动管理服务的用户。通过编辑`redis.conf`,你可以调整Redis的各项参数...
- `redis-benchmark`: 性能测试工具,用于测量Redis的读写速度。 - `redis-check-aof`: 检查AOF日志文件的工具,确保其一致性。 - `redis-check-rdb`: 检查RDB快照文件的工具,确认数据无损。 安装Redis-x64-5.0....
可以尝试发送一些基本命令,如`SET key value`、`GET key`等。 5. 安全设置:生产环境中,为了安全,你需要设置访问控制,例如通过`requirepass`配置项设置密码,限制远程访问,或者使用防火墙规则。 6. 持久化:...
- 使用`redis-benchmark`进行性能测试,找出瓶颈并优化。 综上所述,这个压缩包提供了在Windows环境下运行Redis所需的基本组件和文档,帮助用户在非Linux系统上搭建和管理Redis服务。通过正确配置和使用这些文件,...
- 解压"redis-windows-7.2.4.zip",找到`redis-server.exe`启动文件。 - 运行`redis-server.exe`,默认情况下,Redis监听6379端口。 - 可以通过配置文件`redis.windows.conf`修改默认设置,如端口、内存限制、...
《深入理解Tomcat-Redis-Session-Manager:在Tomcat7和Tomcat8中的应用》 ...无论是为了提升服务性能,还是为了应对复杂的集群环境,Tomcat-Redis-Session-Manager都是一个值得考虑的优秀解决方案。
- **redis-benchmark**:性能测试工具,可以用来测量Redis的吞吐量和延迟。 - **redis-check-aof**和**redis-check-rdb**:用于检查和修复AOF文件和RDB文件的工具。 - **其他库文件和文档**:可能包含必要的库文件...
Redis的核心概念包括键(key)、值(value)和数据类型。键是用于标识存储内容的唯一标识符,值则是键所关联的数据。Redis支持多种数据类型,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序...
2. **redis-benchmark.exe**:这是一个性能测试工具,可以用来测量Redis服务器的读写速度。 3. **redis-cli.pdb**:客户端命令行界面的调试信息文件。 4. **redis-check-aof.pdb**:用于检查Append Only File(AOF)...
Redis的核心组件包括`redis-server.exe`(服务器进程)、`redis-cli.exe`(命令行客户端)以及`redis-benchmark.exe`(性能测试工具)等。用户需要通过`redis-server.exe`启动服务,并通过`redis-cli.exe`进行交互式...
本文将详细介绍“another-redis-desktop-manager.1.5.5.exe”这款Redis数据库连接软件,帮助用户更好地管理和操作Redis数据库。 首先,"another-redis-desktop-manager"是一款基于桌面的Redis管理工具,其1.5.5版本...
$value = $redis->hGet('hashKey', 'field1'); ``` - 集合操作(Sadd/Srem/Sismember): ```php $redis->sAdd('setKey', 'member1', 'member2'); $redis->sRem('setKey', 'member1'); $exists = $redis->...
Redis-dump是一个用于导出和导入Redis数据库内容的工具,主要功能是将Redis的数据备份到磁盘上,以便在需要时恢复数据。本教程将详细介绍如何在Windows环境下使用msys2和ruby进行Redis-dump的安装。 首先,我们需要...
1. **bin**:这个目录包含了Redis服务器(redis-server)、客户端(redis-cli)以及其他命令行工具,如用于清除Redis实例数据的`redis-check-aof`和`redis-check-rdb`。安装完成后,可以通过这个目录下的可执行文件...
《Redis桌面管理器Another-Redis-Desktop-Manager详解》 Redis,全称为Remote Dictionary Server,是一种高性能的键值存储系统,常被用作数据库、缓存和消息中间件。其简洁的数据结构和丰富的数据类型使其在分布式...
3. `redis-benchmark.exe`是性能测试工具,可以用来衡量Redis服务器的读写速度和并发能力。 4. `redis-check-aof`和`redis-check-rdb`则是用于检查和修复AOF(Append Only File)和RDB(Snapshot)持久化文件的工具...
描述中提到“Redis是一个高性能的key-value数据库”,这是对Redis核心功能的简洁概述。作为键值数据库,Redis通过键(key)来唯一标识每个数据项,并允许快速查找和操作对应的值(value)。其高性能主要来源于以下几...
例如,`SET key value`用来设置键值对,`GET key`用来获取键对应的值。 5. **数据结构与操作**:Redis支持多种数据结构,每种都有其特定的应用场景。例如: - **字符串**:最基础的数据类型,可以存储任何序列化后...
4. **其他辅助工具**:可能还包括一些诊断或管理工具,如`redis-benchmark.exe`用于性能测试,`redis-check-aof.exe`和`redis-check-dump.exe`用于检查和修复数据文件。 在Windows环境下安装Redis,首先解压"redis-...