Redis小试牛刀

什么是Redis???

Redis 是一个高性能开源的、C语言写的Nosql(非关系型数据库),数据保存在内存中。 Redis
是以key-value形式存储,和传统的关系型数据库不一样。不一定遵循传统数据库的一些基本要求,比如说,不遵循sql标准,事务,表结构等等,非关系型数据库严格上不是一种数据库,应该是一种数据结构化存储方法的集合。

Redis小试牛刀_第1张图片

在学习Redis之前 来了解了解什么是NoSql???
NoSQL(NoSQL = Not Only SQL ),意即“不仅仅是SQL”,它泛指非关系型的数据库。随着互联网2003年之后web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的交友类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。

Redis的特点(优势)

1.数据保存在内存,存取速度快,并发能力强
2.它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、 zset(sorted set --有序集合)和hash(哈希类型)。
3.redis的出现,很大程度补偿了memcached这类key/value存储的不足,在部分场合可以对关系数据库(如MySQL)起到很好的补充作用。
4.它提供了Java,C/C++,C#,PHP,JavaScript等客户端,使用很方便。
5.Redis支持集群(主从同步)。数据可以主服务器向任意数量从的从服务器上同步,从服务器可以是关联其他从服务器的主服务器。
6.支持持久化,可以将数据保存在硬盘的文件中
7.支持订阅/发布(subscribe/publish)功能 QQ群

Mysql、Memcached和Redis的比较

Redis小试牛刀_第2张图片

使用场景
1、缓存
经常查询数据,放到读速度很快的空间(内存),以便下次访问减少时间。减轻数据库压力,减少访问时间.而redis就是存放在内存中的。
2、计数器应用
Redis小试牛刀_第3张图片
3、实时防攻击系统
暴力破解:使用工具不间断尝试各种密码进行登录。防:ip—>num,到达10次以后自动锁定IP,30分钟后解锁
解决方案:
1)存数据库
在这里插入图片描述
登录操作的访问量非常大
2)static Map longinFailNumMap;
Map存储空间有限,大批量就不行,并且断电以后数据丢失。
问题:Redis能解决
a.每次查询数据库,查询速度慢,多次写 内存
b.断电会丢失数据,多个节点,不能共用 redis集群,容量可以无限大,可以共享数据、并且支持过期

4、排行榜
Redis小试牛刀_第4张图片
5、设定有效的应用
设定一个数据,到一定的时间失效。 自动解锁,购物券
6、自动去重应用
Uniq 操作,获取某段时间所有数据排重值 这个使用 Redis 的 set 数据结构最合适了,只需要不断地将数据往 set 中扔就行了,set 意为 集合,所以会自动排重。
7、队列
构建队列系统 使用 list 可以构建队列系统,使用 sorted set 甚至可以构建有优先级的队列系统。
秒杀:可以把名额放到内存队列(redis),内存就能处理高并发访问。限流
8、消息订阅系统
比如QQ群消息

你可能感兴趣的:(Redis)