Redis初步了解
Posted dystar
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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里,可以减轻后端存储的负载。
以上是关于Redis初步了解的主要内容,如果未能解决你的问题,请参考以下文章