首页 > 数据库 >redis特点

redis特点

时间:2023-11-09 11:04:03浏览次数:39  
标签:功能 源代码 redis Redis 特点 提供 数据结构 分布式


知识点归纳:

1.Redis速度快的原因:内存存储、C语言实现、单线程、优秀的源代码

2.Redis支持的5种数据结构:字符串、列表、集合、有序集合、哈希

3.Redis额外的功能:订阅、流水线、Lua脚本、键过期、事务

4.Redis的简单现在:源代码少、单线程、不依赖类库,独立处理事件

5.Redis支持多种语言

6.Reids持久化的两种方式:RDB和AOF

7.Redis支持主从复制

8.Redis的高可用和分布式:高可用和扩展性

 

Redis之所以受到如此多公司的青睐,必然有之过人之处,下面是关于Redis的8个重要特性。

1.速度快

正常情况下,Redis执行命令的速度非常快,官方给出的数字是读写性能可以达到10万/秒,

当然这也取决于机器的性能,但这里先不讨论机器性能上的差异,只分析一下是什么造就了Redis如此之快的速度,可以大致归纳为以下四点:

(1)Redis所有的数据是存放在内存中的,这也是Redis速度快的最主要原因。

(2)Redis是用C语言实现的,一般来说C语言实现的程序“距离”操作系统更近,执行的速度相对会更快。

(3)Redis使用了单线程架构,预防了多线程可能产生的竞争问题。

(4)Redis的源代码是集性能和优雅于一身的开源代码。

 

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

几乎所有的语言都提供了类似字典的功能,例如Java里的map、Python里的dict,

类似于这种组织数据的方式叫做基于键值的方式,与很多键值对数据库不同的是,Redis中的值不仅可以是字符串,

而且还可以是具体的数据结构,这样不仅能便于在许多应用场景的开发,同时也能够提升开发效率。

Redis的全称是REmote Dictionary Server,它主要提供了5种数据结构:字符串、哈希、列表、集合、有序集合,

同时在字符串的基础之上演变出了位图(Bitmaps)和HyperLogLog两种神奇的“数据结构”,

并随着LBS(Location Based Service,基于位置服务)的不断发展,Redis3.2版本中加入了有关GEO(地理信息定位)的功能,

总之在这些数据结构的帮助之下,开发者可以开发出各种“有意思”的应用。

 

3.丰富的功能

除了5种数据结构,Redis还提供了许多额外的功能:

(1)提供了键过期功能,还可以用来实现缓存。

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

(3)提供了Lua脚本功能,可以利用Lua创造出新的Redis命令。

(4)提供了简单的事务功能,能在一定程度上保证事务特性。

(5)提供了流水线(Pipeline)功能,这样客户端能将一批命令一次性传到Redis,减少了网络开销。

 

4.简单稳定

Redis的简单主要表现在三个方面。

首先,Redis的源码很少,早期版本的代码只有2万行左右,3.0版本以后由于添加了集群特性,代码增至5万行左右,

相对于很多NoSQL数据库来说代码量相对要少很多,也就意味着普通的开发和运维人员完全可以“吃透”它。

其次,Redis使用单线程模型,这样不仅Redis服务端处理模型变得简单,而且也使得客户端开发变得简单。

最后,Redis不需要依赖于操作系统中类库(例如Memcache需要依赖libevent这样的系统类库),Redis自己实现了事件处理的相关功能。

Redis虽然简单,但是不代表他不稳定,一般很少出现因为Redis自身bug而宕掉的情况。

 

5.客户端语言多

Redis提供了简单的TCP通信协议,很多编程语言可以很方便地接入到Redis,

并且由于Redis受到社区和各大公司的广泛认可,所以支持Redis的客户端语言也非常多,

几乎涵盖了主流的编程语言,例如Java、PHP、Python、C、C++等。

 

6.持久化

通常看,将数据放在内存中是不安全的,一旦发生断电或者机器故障,重要的数据可能就会丢失,

因此Redis提供了两种持久化方式:RDB和AOF,即可以用两种策略将硬盘的数据保存到硬盘中,这样就保证了数据的可持久性。

redis特点_数据

 

7.主从复制

Redis提供了复制功能,实现了多个相同数据的Redis副本,复制功能是分布式Redis的基础,后面会讲解Redis的复制功能。

redis特点_数据_02

 

8.高可用和分布式

Redis从2.8版本正式提供了高可用实现Redis Sentinel,它能够保证Redis节点的故障发现和故障自动转移。

Redis从3.0版本正式提供了分布式实现Redis Cluster,它是Redis真正的分布式实现,提供了高可用、读写和容量的扩展性。

标签:功能,源代码,redis,Redis,特点,提供,数据结构,分布式
From: https://blog.51cto.com/u_809530/8273996

相关文章

  • SpringBoot AOP + Redis 延时双删功能实战
    一、业务场景在多线程并发情况下,假设有两个数据库修改请求,为保证数据库与redis的数据一致性,修改请求的实现中需要修改数据库后,级联修改Redis中的数据。请求一:A修改数据库数据B修改Redis数据请求二:C修改数据库数据D修改Redis数据并发情况下就会存在A—>C—>D—>B的情......
  • Redis 哨兵模式的原理及其搭建
    1.Redis哨兵Redis提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。1.1.哨兵原理1.1.1.集群结构和作用哨兵的结构如图:哨兵的作用如下:监控:Sentinel会不断检查您的master和slave是否按预期工作。自动故障恢复:如果master故障,Sentinel会将一个slave提升为master。当......
  • Redis系列之常见数据类型应用场景
    目录String简单介绍常见命令应用场景Hash简单介绍常见命令应用场景List简单介绍常见命令应用场景Set简单介绍常见命令应用场景SortedSet(Zset)简单介绍常见命令应用场景Bitmap简单介绍常见命令应用场景附录Redis支持多种数据类型,比如String、hash、list、Set、SortedSet、Stream......
  • Redis哨兵集群
    ●slave节点宕机恢复后可以找master节点同步数据,那master节点宕机怎么办?哨兵的作用Redis提供了哨兵(Sentinel)机制来实现主从集群的自动故障恢复。哨兵的结构和作用如下:●监控:Sentinel会不断检查您的master和slave是否按预期工作自动故障恢复:如果master故障,Sentinel会将一个......
  • Spring Data Redis使用方式
    SpringBoot提供了对应的Starter,maven坐标:<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency>SpringDataRedis中提供了一个高度封装的类:RedisTemplate,对相关api进行了......
  • Redis使用场景
    核心知识点:1.Redis可以做什么:缓存、排行榜、消息队列、计数器和社交网络。2.Redis不适合做什么:不适合大数据规模的存储和冷数据的存储。 一、Redis可以做什么1.缓存缓存机制几乎在所有的大型网站都有使用,合理地使用缓存不仅可以加快数据的访问速度,而且能够有效地降低后端数据源地......
  • Redis配置文件详解
    Redis的配置文件redis.conf过滤掉空行和注释行,总共有49个可控项。1daemonizeno默认情况下,redis不是后台运行,如果需要后台运行,把该项的值改为yes。2pidfile当Redis在后台运行的时候,Redis默认会把pid文件放在/var/run/redis.pid,你可以配置到其他地址。当运行多个redis服务时,需......
  • Redis shell
                                                                        Redisshell命令参数功能redis-cli-r将一个命令执行多次-i每隔几秒执行一次-x和|一起接收前面地输出,并执行命令-c -a --scan/--patt......
  • Redis切片集群
    切片集群多个Redis实例组成一个集群,然后按照一定的规则,把收到的数据划分成多份,每一份用一个实例来保存。RedisCluster定义Redis官方提供的实现切片集群的方案,采用了16384个哈希槽用于处理数据和实例的映射关系。首先根据key计算哈希槽hash_slot=CRC16(key)%16384,其次......
  • Redis迁移工具redis-migrate-tool的使用
    背景:公司由于以前没有同意规划,导致出现好几个redis实例,现在需要整合到一起,查到还有redis-migrate-tool工具,所以把使用情况写一下,以备后用参考 一、下载编译#从git库直接拉取gitclonehttps://github.com/vipshop/redis-migrate-tool.git#CentOS安装必......