我们知道常见关系型数据库,受存储介质、查询算法、连接数目限制等因素,在请求数目过多时,性能下降,无法满足高并发下的快速响应。
一、什么是Redis?
百度定义:Redis 是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
关键点:
1、是一个key-value存储系统,基于内存操作
2、操作原子性
3、可持久化存储
4、丰富的数据结构:
二、与memcached比较
|
redis
|
memcached
|
---|---|---|
数据类型 | 支持多种数据类型 | 只支持简单的k-v |
数据持久化支持 | 支持数据持久化 | 全内存模式 |
数据一致性 | 提供了事务的功能,可以保证一串命令的原子性,中间不会被任何操作打断 | 提供了cas命令,可以保证多个并发访问操作同一份数据的一致性问题 |
集群 | 服务端分布式 | 客户端分布式 |
内存管理 | 实时分配内存 | 预分配内存 |
redis出色的表现:
set的速度是110000次/s,get的速度是81000次/s;Memcache:
set的速度是20971次/s,最大22497次/s,get的速度是16222次/s,最大18799次/s;
redis读写速度快memcache10倍;
三、环境搭建
官方 redis.io# wget http://redis.googlecode.com/files/redis-2.4.4.tar.gz
# tar xzf redis-2.4.4.tar.gz
# cd redis-2.4.4
# make
# cp redis-server redis-cli /usr/bin
# cp redis.conf /etc
# /usr/bin/redis-server /etc/redis.conf
redis> set name beckyao
‘ok’
在线测试 http://try.redis-db.com & redis.io
四、数据类型
string、List、Set、Sorted set、hash