专栏首页CSDN技术头条解锁Spring Data Redis的正确使用姿势

解锁Spring Data Redis的正确使用姿势

Redis 是一个开源的使用 ANSIC 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从2010年3月15日起,Redis 的开发工作由 VMware 主持,从2013年5月开始,Redis 的开发由 Pivotal 赞助。

Redis 是一个开源(BSD 许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。它支持多种类型的数据结构,如:

  • 字符串(Strings)
  • 散列(Hashes)
  • 列表(Lists)
  • 集合(Sets)
  • 有序集合(Sorted Sets)
  • 范围查询、Bitmaps、Hyperloglogs 和 地理空间(Geospatial)索引半径查询

Redis 内置了复制(Replication)、LUA 脚本(Lua scripting)、LRU 驱动事件(LRU Eviction)、事务(Transactions)和不同级别的磁盘持久化(Persistence),并通过 Redis 哨兵(Sentinel)和自动分区(Cluster)提供高可用性(High Availability)。

现状:随着微服务架构、去中心化、高可用的环境要求,Redis 还会更加火爆。Redis 能帮我们解决很多分布式过程中的一些问题(如内存数据、分布式锁、共享数据等),围绕着 Redis 的开源的产品也越来越丰富。我们作为开发 Java 人员,已经成为了必备的开发技能,如同数据库一样,详见官方地址:https://redis.io/ 和 中文社区:http://www.redis.cn/。

01

Redis、Memcache 的比较

Memcached 和 Redis 都是内存数据库,都可以解决内存数据缓存的问题,但是两者比较,应用场景和便捷性、生态还是差别很大的。相同点都可以通过客户端一致性 Hash 算法解决切片问题。就是便利程度和稳定性可能会有差别,如下:

之前面试的时候,如果是架构师,他们会经常被问到为什么要使用 Redis?不用不行吗?Redis 的优点是帮我们实现了很多内存数据的东西,否则我们重头来写也是可以的,只是有点重复造轮子,人家开源也成熟。

Memcached 更是小项目、小应用场景、快速响应式团队,从高可用角度来说 Redis 还是胜出的。

02

Redis 的市场上 Client 实现方式

Redis 的客户端有个各种语言的实现版本,就 Java 而言常用的实现版本有:

03

Redis 的 Server 端的安装体验

而其中:Jedis 是目前最受欢迎的 Client,而 Spring Data JPA 又基于 Jedis 做了很好的封装。本专题作者就带领大家一起来领略 Spring Data JPA 的魅力所在。

安装

我们以 Redis-4.0.6 为例,先从官方下载,解压安装即可。命令如下:

$ wget http://download.redis.io/releases/redis-4.0.6.tar.gz   
$ tar xzf redis-4.0.6.tar.gz   
$ cd redis-4.0.6    
$ make    
$ pwd    /Users/jack/company/www/redis-4.0.6    

启动 Server 端

如果上面的安装成功之后,我们只需要进入 Redis 的安装目录:/Users/jack/company/www/redis-4.0.6,执行如下命令,即可启动 Redis 的 Server 端。

$ src/redis-server

利用自带客户端测试一下

官方提供的 Redis-4.0.6 包里面包含了 Server 端和 Client 端。我们通过同目录的下面这个命令脚本,即可启动客户端,操作如下:

$ src/redis-cli   
redis> set foo bar   
OK   
redis> get foo    "bar"   

到目前为止安装 Server 成功。

04

Server 端的安装需要掌握的东西

  • 单机安装模式
  • master/salve 方式
  • Redis Sentinel 方式
  • 切片模式安装模式

05

工作需要注意的事项

  • 去中心化
  • Redis 本身服务的高可用、高并发行
  • 数据的安全性、分布式储存、数据的一致性
  • 实现方式的选型
  • Redis 的一些原理和概念要理解清楚

本文分享自微信公众号 - CSDN技术头条(CSDN_Tech)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-15

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 我们为什么使用 Redis?

    如果你从来没使用过 Redis 数据库,那你肯定会问,为什么我们要用 Redis 数据库,我只使用 MySQL 或 Oracle 就够了。其实 Redis 虽叫...

    CSDN技术头条
  • Redis 为什么好用?

    如果你从来没使用过 Redis 数据库,那你肯定会问,为什么我们要学 Redis数据库,我只使用 MySQL 或 Oracle 就够了。其实 Redis 虽叫数...

    CSDN技术头条
  • Redis ,真的不完美

    显而易见,如今的 Redis 已经进入了成熟期,但依旧存在很多疑难杂症。数以千计的开发者都在开发和使用这个数据库,它拥有非常完善的文档。

    CSDN技术头条
  • 七种武器之一口箱子Redis

    江湖传言「在任何规模、任何类型的服务器项目中,都存在一些最适合用Redis存储的数据。」

    有福
  • 我为 Redis 找到了一个新家 —— VMWare

    今天翻了一下Antirez早年的博客,发现了这样一篇介绍redis进展的好文章,写于2010年,居然长期以来都没有被翻译成中文,所以我就不客气了。故事发生在Re...

    芋道源码
  • Redis:基础学习资料 PDF 版下载

    随着Web 2.0的蓬勃发展,网站数据快速增长,人们对高性能读写的需求越来越多,关系数据库越来越不能适应相关的存储需求……

    用户4143945
  • 【redis学习】高级键管理

    为了更有效地在应用程序中使用 Redis ,我们需要理解 Redis 是如何存储键的,并了解用于操作 Redis 实例中键空间的命令。

    看、未来
  • 【Redis 面试题】这些Redis都不懂,还想要offer?

    Redis的全称是:Remote Dictionary.Server,本质上是一个Key-Value类型的内存数据库,很像 memcached,整个数据库统统加...

    不太灵光的程序员
  • Redis教程

    断断续续,Redis教程总算告一段落了,最后一篇其实很早就写好了,一直忘了发,现在总算凑齐了,发出来,做成一个完整的教程,可能还会有遗漏的点,遇到了再慢慢补上。...

    江南一点雨
  • Redis 创始人宣布退居二线:我写代码只是为了表达自己!

    前几日,Redis 创始人 Salvatore Sanfilippo 在他的个人博客(http://antirez.com/)上宣布将结束自己的 Redis 之...

    程序猿DD

扫码关注云+社区

领取腾讯云代金券