Redis初步了解

Redis八大特性:

1速度块

  redis执行的速度非常之快,官方给出的数字读写性能高达十万每秒,速度性能如此之好的原因主要是以下几点:

    1 .所有的数据存放再内存中,这是最主要的原因。

  2.redis是用c语言写的,一般来说c语言实现的程序距离操作系统更近,执行速度会相对快一点。

  3.使用的是单线程结构,预防了多线程可能产生的竞争问题。

2.基于键值对的数据结构服务器

  几乎所有的编程语言中都类似字典的功能,redis的特殊之处在于,它的map值可以是其他的数据结构,不仅仅是string类型,主要提供五种数据结构,字符串,哈希,列表, 集合,有序集合,同时再字符串的基础上逐渐演变出来了bitmap(位图),HyperLogLog两种神奇的数据结构,随着LBS(基于位置服务)的不断发展,redis3.2版本中加入了GEO(地理信息定位)的功能,在这些数据结构的共同支持下,redis应用越来越广。

3.丰富的功能

  主要功能有:

  1.提供键过期功能,可以实现缓存。

  2.提供了发布订阅功能,可以用来实现消息系统。

  3.支持Lua脚本功能,可以自动生成自定义的redis命令。

  4.提供了流线线(pipeLine)功能,客户端可以一次性将一批命令传给服务端,减少网路交互的次数,性能得以提高,减少了网络开销。

  5.提供了简单的事务功能。

4.简单稳定

  早期redis源代码只有2万行,后期因为交了集群特性,才增至5万行,相对于很多nosql数据库来说,代码量少的多。

5.客户端语言多

  redis提供简单的tcp通信协议,很多编程语言可以接入到redis,由于redis强大的功能特性,所以支持redis的客户端语言也很多,Java,pathon,php,c,c++,NodeJs等等。

6.持久化

  将数据全部放在内存中是及其不安全的,一旦发生断电或者机器故障,重要的数据很有可能就会消失。所以redis提供了两种持久化方式,RDB和AOF,两种策略将内存中的数据转移到硬盘中,这样保证了数据的持久性。

7.主从复制

提供了复制功能,这是分布式redis的基础。

8.高可用和分布式

保证redis节点的故障发现和故障自动转移。版本3.0正式提出了分布式redis cluster,它是redis真正的分布式实现,提供了高可用,读写,和容量的扩展性。

 

Redis使用场景

1.缓存

合理使用缓存可以加快数据的访问速度,还可以有效降低后端数据源的压力。

2.排行榜系统

提供了列表和有序集合数据结构,合理使用这些数据结构可以很方便的实现各种排行榜系统。

3.计数器应用

计数器在大型网站中的作用至关重要,视频播放次数,电商网站浏览数,为了保证数据的实时性,每一次播放和浏览都要加1的操作,如果并发量很大对于传统的关系型数据是极大的挑战,redis天然的支持计数功能而且性能很好。

4.社交网络

点赞数,共同好友,推送,下拉刷新是社交网络的基本功能,由于社交网站访问量通常很大,而且传统的关系数据不太适合保存这种类型的数据,redis提供的数据结构可以相对容易的实现这些功能。

5.消息队列系统

消息队列是一个大型网站的必备基础组件,redis提供的发布订阅和阻队列,可以满足一般的消息队列功能。

Redis不适合的场景:

数据可以分为大数据可小数据,因为redis的数据存放在内存中,内存的资源一般比较昂贵,所以redis一般适合存放小数据。

数据可以分为热数据和冷数据,热数据指的是需要频繁操作的数据,冷数据指的是一般变化不大的数据,视频网站中视频信息是热数据,历史记录是冷数据,把冷数据放在redis里简直是浪费。热数据放在redis里,可以减轻后端存储的负载。

 

posted @ 2019-05-31 12:48  login0  阅读(136)  评论(0编辑  收藏  举报