Redis基础知识

news/2024/11/15 3:34:31/

57a208c3449a458c9657247bc89b0e33.jpg

 

1.1 Redis简介

   Redis是一个开源(BSD许可),内存存储的数据结构服务器,可用作数据库,高速缓存和消息队列代理。它支持字符串、哈希表、列表、集合、有序集合,位图,hyperloglogs等数据类型。内置复制、Lua脚本、LRU收回、事务以及不同级别磁盘持久化功能,同时通过Redis Sentinel提供高可用,通过Redis Cluster提供自动分区。

 

  一般项目都可以使用它。

 

1.2 Redis资料

   Redis的资料还是比较多的,首先推荐Redis中文网站的资料,其他的

 

1.2.1 初步教程

  Redis 教程:http://www.runoob.com/redis/redis-tutorial.html,菜鸟教程,内容很详细,阅读完后基本就对Redis有个全面的了解。其中每部分链接:

 

  Redis 教程 Redis 简介 Redis 安装 Redis 配置 Redis 数据类型

 

  Redis 命令 Redis 键(key) Redis 字符串(String) Redis 哈希(Hash) Redis 列表(List) Redis 集合(Set) Redis 有序集合(sorted set) Redis HyperLogLog Redis 发布订阅 Redis 事务 Redis 脚本 Redis 连接 Redis 服务器

 

  Redis 数据备份与恢复 Redis 安全 Redis 性能测试 Redis 客户端连接 Redis 管道技术 Redis 分区 Java 使用 Redis PHP 使用 Redis

 

1.2.2 其他教程

  所有命令解析:http://www.redis.net.cn/order/,遇到不懂的可以来查询。

 

二、Redis和同类产品的比较

  根据Redis的简介,Redis可用作数据库,高速缓存和消息队列代理,那么当你打算使用它们这些功能的时候,可以考虑一下与其他产品的对比,选出一个更好用的。

 

1.1 做为数据库与之比较

  Redis是可以做为数据库来使用的,它可以看做一个key/value型数据库,因为Redis会根据配置定时将内存中的数据写入到硬盘中,这样即便重启以后依然可以恢复,但是有几个缺点需要考虑一下:

 

Redis只能存储key/value类型,虽然value的类型可以有多种,但是对于关联性的记录查询,没有Oracle/Mysql方便。

Redis内存数据写入硬盘有一定的时间间隔,在这个间隔内数据可能会丢失,虽然后续会介绍各种模式来保证数据丢失的可能性,但是依然会有可能,所以对数据有严格要求的不建议使用Redis做为数据库。

1.2 做为高速缓存与之比较

  我觉得Redis的本职工作还是高速缓存,同样可以做为缓存的有Ehcache、Memcached 。有一篇博客介绍的很详细:http://blog.csdn.net/jationxiaozi/article/details/8509732。我就简单总结一下,只说它们最大的特点,读取速度不再考虑范围之内,毕竟能作为相互比较的缓存工具,速度不会差的太多,只列出较为突出的优点和缺点,列出来表示其他没有:

 

Ehcache

 

是一个Java开源项目,使用的方式就是引入一个jar包,非常方便

Memcached 

 

如果开启多线程模式,读取速度将有极大的提高

数据只会存储在内存中,挂掉后数据不可恢复

Redis

 

数据结构非常丰富,字符串、hash列表、list、Set等等

支持主从,Sentinal,分片等多种高级特性,用于负载均衡和容灾,具有高可用性

几乎支持所有语言的客户端

  根据需求选择最合适的。

 

1.3 做为消息队列与之比较

  Redis也是可以做为消息队列的,与之相同功能比较优秀的就是Kafka,简单比较如下:

 

Redis

 

只能说具备发布订阅功能,一个或多个消费者订阅一个频道

Kafka

 

高级特性一应俱全,集群、负载均衡、动态扩容、数据备份等

 


http://www.ppmy.cn/news/10576.html

相关文章

Python基础(二十三):面向对象之继承介绍

文章目录 面向对象之继承介绍 一、继承的概念 二、单继承 三、多继承 四、子类重写父类同名方法和属性 五、子类调用父类的同名方法和属性 六、多层继承 七、super()调用父类方法 八、私有权限 1、定义私有属性和方法 2、获取和修改私有属性值 面向对象之继承介绍 …

Java Stream 的遍历/筛选/去重/统计/求和/平均值/排序/累计/跳过

1.遍历&#xff08;forEach&#xff09; public static void main(String[] args) {List<Person> userList new ArrayList<>();userList.add(new Person("段誉",25));userList.add(new Person("萧峰",40));userList.add(new Person("虚竹…

《诛仙番外:桃夭》

by&#xff1a;殊彦【GH】 雪飘如絮&#xff0c;寒风凛凛&#xff0c;波涛山峦银装素裹&#xff0c;大地披上白毛毡&#xff0c;今天便是那除夕。 青云山&#xff0c;大竹峰&#xff0c;守静堂内&#xff0c;却是一派暖意&#xff0c;炉子里柴火烧的正旺&#xff0c;源源不断的…

【FPGA】中值滤波处理BMP图片

文章目录一、中值滤波二、BMP图片格式三、功能实现1.代码设计思路2.shift IP核3.代码实现四、结果测试参考博客一、中值滤波 中值滤波法是一种非线性平滑技术&#xff0c;它将每一像素点的灰度值设置为该点某邻域窗口内的所有像素点灰度值的中值。 中值滤波是基于排序统计理论…

Jenkins安装

Jenkins安装1、Jenkins简介2、Jenkins安装2.1 安装条件2.2 安装JDK2.2.1 检索可用包2.2.2 安装2.3 下载Jenkins的war包2.4 启动jenkins并测试3、安装maven1、Jenkins简介 Jenkins是一款开源 CI&CD 软件&#xff0c;用于自动化各种任务&#xff0c;包括构建、测试和部署软件…

序列化——谨慎实现Serializable

何为序列化 序列化与反序列化对应。 序列化&#xff1a;将一个对象转为字节流 反序列化&#xff1a; 将字节流转为对象 通过序列化继续&#xff0c;可以将对象编码之后&#xff0c;通过网络传输到其他应用中&#xff0c;再反序列化&#xff0c;实现远程交互调用。 如何序列…

Java高手速成 | Java集合类泛类型

Java高手是这样炼成的。 01、Java集合类包括哪些&#xff1f; 作为学习集合类泛类型的预备知识&#xff0c;图1列出了Java集合类继承图。要学会集合类泛类型&#xff0c;除了懂得集合类外&#xff0c;大家也需 要了解继承的工作原理。图中虚线表示Collection是一个接口。 02…

OpenTelemetry日志体系

前言 OpenTelemetry为了实现其可观测性有三大体系&#xff1a;Trace&#xff0c;Metrics和Log。本文将对于OpenTelemetry实现的日志体系进行详细的讲述。 日志 说到日志相比大家都能侃侃而谈&#xff1a;帮助快速定位出现的问题&#xff0c;数据追踪&#xff0c;性能分析等等…