84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
各位大神,这个是面试题啊,小弟是菜鸟,最好,用比较通俗的话说,最好不要直接 百度copy 其他人的,最好是自己处理总结过的,因为,本人已经百度了很多次了。
学习是最好的投资!
是一种非关系型数据库(NoSQL),是用C/C++编写的,redis的特点:
采用简单数据或以键值索引的哈希表,但也支持复杂操作,例如 ZREVRANGEBYSCORE。
INCR & co (适合计算极限值或统计数据)
支持 sets(同时也支持 union/diff/inter)
支持列表(同时也支持队列;阻塞式 pop操作)
支持哈希表(带有多个域的对象)
支持排序 sets(高得分表,适用于范围查询)
Redis支持事务
支持将数据设置成过期数据(类似快速缓冲区设计)
Pub/Sub允许用户实现消息机制
至于它有什么用或者怎么用:通常局限点来说,Redis也以消息队列的形式存在,作为内嵌的List存在,满足实时的高并发需求。而通常在一个电商类型的数据处理过程之中,有关商品,热销,推荐排序的队列,通常存放在Redis之中,期间也包扩Storm对于Redis列表的读取和更新。
可以参考这篇文章:Redis应用场景
redis是内存kv存储,跟memcache有点类似,很多时候可以互换。一般用于数据库前面加一层缓存。比如简单的members表,每次请求可能都要读取members表,频繁的读取可以用redis来缓存。
row=redis->get("m_"..id) if not row then sql="select * from members where id='"..id.."'"; row=sdo:fetch(sql); redis->set("m_"..id,row); end
这个是基本的,也是用的最多的。redis还有队列,比如一个请求记录用户的操作请求,用redis->lpush(op),从左加入队列。一个后台服务可以从redis队列读取,op=redis->rpop(op),这个就可以完成简单的先来先服务策略。另外redis也可以持久化,就是把内存的kv数据保存到硬盘,断电之后可以从内存加载。个人不推荐使用redis持久化,关掉持久化,仅仅用来做个cache。
是一种非关系型数据库(NoSQL),是用C/C++编写的,redis的特点:
采用简单数据或以键值索引的哈希表,但也支持复杂操作,例如 ZREVRANGEBYSCORE。
INCR & co (适合计算极限值或统计数据)
支持 sets(同时也支持 union/diff/inter)
支持列表(同时也支持队列;阻塞式 pop操作)
支持哈希表(带有多个域的对象)
支持排序 sets(高得分表,适用于范围查询)
Redis支持事务
支持将数据设置成过期数据(类似快速缓冲区设计)
Pub/Sub允许用户实现消息机制
至于它有什么用或者怎么用:
通常局限点来说,Redis也以消息队列的形式存在,作为内嵌的List存在,满足实时的高并发需求。而通常在一个电商类型的数据处理过程之中,有关商品,热销,推荐排序的队列,通常存放在Redis之中,期间也包扩Storm对于Redis列表的读取和更新。
可以参考这篇文章:Redis应用场景
redis是内存kv存储,跟memcache有点类似,很多时候可以互换。一般用于数据库前面加一层缓存。
比如简单的members表,每次请求可能都要读取members表,频繁的读取可以用redis来缓存。
这个是基本的,也是用的最多的。
redis还有队列,比如一个请求记录用户的操作请求,用redis->lpush(op),从左加入队列。一个后台服务可以从redis队列读取,op=redis->rpop(op),这个就可以完成简单的先来先服务策略。
另外redis也可以持久化,就是把内存的kv数据保存到硬盘,断电之后可以从内存加载。
个人不推荐使用redis持久化,关掉持久化,仅仅用来做个cache。