Redis的基本概念和使用

目录

一、Redis简介

1、NOSQL

2、NOSQL和关系型数据库比较

3、主流的NOSQL产品

4、什么是Redis

5、启动Redis

二、Redis基本操作

1、大概操作

三、 Redis 数据类型(5种常用)

1、redis 数据存储格式

2、String

3、hash

4、list

5、Set

6、sorted_set

四、Jedis

1、导入对应的依赖

2、编码测试

五、使用坐标完成Java和redis的连接

        方案一(字符串处理):

        方案二(通用模板):

        方案三(自定义处理):


一、Redis简介

        首先是一个之前的一个新闻,很多平台接连二三的连续崩溃,原因是为什么呢?总的来说两点:海量用户、高并发。主要是因为关系型数据库,虽然能实现联查等关系查询,但是性能瓶颈,磁盘IO性能低下。扩展瓶颈,数据关系复杂,扩展性差,不便于大规模集群。

        呢怎么解决这种问题呢?降低磁盘IO次数,越低越好,使用内存存储。去除数据间关系,越简单越好,不存储关系,仅存储数据。呢就用Nosql解决。

1、NOSQL

        NoSQL(NoSQL = Not Only SQL),意即“不仅仅是SQL”,是一项全新的数据库理念,泛指非关系型的数据库。随着互联网web2.0网站的兴起,传统的关系数据库在应付web2.0网站,特别是超大规模和高并 发的SNS类型,web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据 库则由于其本身的特点得到了非常迅速的发展。NoSQL数据库的产生就是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题。

2、NOSQL和关系型数据库比较

        优点:

  • 成本:nosql数据库简单易部署,基本都是开源软件,不需要像使用oracle那样花费大量成本购 买使用,相比关系型数据库价格便宜。
  • 查询速度:nosql数据库将数据存储于缓存之中,关系型数据库将数据存储在硬盘中,自然查询速度远不及nosql数据库。
  • 存储数据的格式:nosql的存储格式是key,value形式、文档形式、图片形式等等,所以可以存储基础类型以及对象或者是集合等各种格式,而数据库则只支持基础类型。
  • 扩展性:关系型数据库有类似join这样的多表查询机制的限制导致扩展很艰难。

        缺点: 

  • 维护的工具和资料有限,因为nosql是属于新的技术,不能和关系型数据库10几年的技术同日而语。
  • 不提供对sql的支持,如果不支持sql这样的工业标准(不遵循SQL标准),将产生一定用户的学习和使用成本。
  • 不提供关系型数据库对事务的处理。

3、主流的NOSQL产品

        键值(Key-Value)存储数据库

  • 相关产品: Tokyo Cabinet/Tyrant、Redis、Voldemort、Berkeley DB
  • 典型应用: 内容缓存,主要用于处理大量数据的高访问负载。
  • 数据模型: 一系列键值对
  • 优势: 快速查询
  • 劣势: 存储的数据缺少结构化

        列存储数据库

  • 相关产品:Cassandra, HBase, Riak
  • 典型应用:分布式的文件系统
  • 数据模型:以列簇式存储,将同一列数据存在一起
  • 优势:查找速度快,可扩展性强,更容易进行分布式扩展劣势:功能相对局限

        文档型数据库

  • 相关产品:CouchDB、MongoDB
  • 典型应用:Web应用(与Key-Value类似,Value是结构化的)
  • 数据模型: 一系列键值对
  • 优势:数据结构要求不严格
  • 劣势: 查询性能不高,而且缺乏统一的查询语法

        图形(Graph)数据库

  • 相关数据库:Neo4J、InfoGrid、Infinite Graph
  • 典型应用:社交网络数据模型:图结构
  • 优势:利用图结构相关算法。
  • 劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案。

        解决方案: 

4、什么是Redis

        概念:Redis (REmote DIctionary Server) 是用 C 语言开发的一个开源的高性能键值对(key-value)数据库,Redis 是一个开源的内存数据库,通常用作缓存、消息队列和实时数据存储。它以键值对的形式存储数据,并支持多种数据结构,如字符串、哈希、列表、集合和有序集合。由于数据存储在内存中,Redis 具有非常快的读写速度。Redis 还支持持久化,可以将数据定期保存到磁盘。

        特征

  • 数据间没有必然的关联关系。
  • 内部采用单线程机制进行工作。
  • 高性能,官方提供测试数据,50个并发执行100000 个请求,读的速度是110000 次/s,写的速度是 81000次/s。
  • 多数据类型支持。
字符串类型 string
列表类型 list
散列类型 hash
集合类型 set
有序集合类型 sorted_set
  • 持久化支持,可以进行数据灾难恢复。

5、启动Redis

        服务器启动

        方式1:双击redis-server.exe

        方式2:指令redis-server.exe redis.windows.conf

         客户端连接:

二、Redis基本操作

1、大概操作

        命令行模式工具使用思考:功能性命令、清除屏幕信息、帮助信息查阅、退出指令。

        信息添加

  • 功能:设置 key,value 数据(一般key指的是建立的对象名称,value是存的值
  • 命令:set key value

        信息查询: 

  • 功能:根据 key 查询对应的 value,如果不存在,返回空(nil)
  • 命令:get key

        清除屏幕信息:</

Redis 是一个开源的高性能键值对内存数据库,广泛用于缓存、消息中间件数据库等场景。其基本概念围绕其数据模型、架构设计功能特性展开。 ### Redis基本概念 Redis 的核心是一个键值存储系统,支持多种数据结构,包括字符串(strings)、散列(hashes)、列表(lists)、集合(sets)有序集合(sorted sets)。这些数据结构允许开发者以灵活的方式操作数据,满足不同的业务需求。例如,字符串类型可以用于存储简单的键值对,而有序集合则可以用于实现排行榜等功能。 Redis 采用客户端-服务端架构,客户端通过 TCP 连接与 Redis 服务器通信,发送命令并接收响应。这种架构使得 Redis 能够高效地处理高并发请求,支持每秒数十万次的操作[^3]。 ### Redis 的原理 Redis 的高性能得益于其内存存储机制单线程处理模型。由于数据存储在内存中,Redis 能够提供极快的读写速度。尽管 Redis 是单线程的,但它通过 I/O 多路复用技术实现了高效的网络通信,从而保证了线程安全性高并发性能。 此外,Redis 提供了持久化功能,允许将内存中的数据定期保存到磁盘中,以便在重启时恢复数据。这一特性确保了数据的安全性,同时也为 Redis 作为主数据库的应用场景提供了支持。 为了提高可用性扩展性,Redis 支持主从复制集群模式。主从复制允许一个或多个 Redis 服务器复制主服务器的数据,从而实现数据冗余负载均衡。而在集群模式下,Redis 可以自动管理数据的分布迁移,实现水平扩展[^2]。 ### Redis 的应用场景 Redis 的多功能性使其适用于多种应用场景。除了作为缓存系统加速数据访问外,还可以用作消息队列,支持发布/订阅模式的消息传递。此外,Redis 还可以实现分布式锁,帮助在分布式环境中协调多个节点的操作。 ### 示例代码 以下是一个简单的 Java 示例,展示如何使用 Jedis 客户端连接 Redis 服务器并发送命令: ```java import redis.clients.jedis.Jedis; public class TestPing { public static void main(String[] args) { // 创建 Jedis 实例,连接本地 Redis 服务器 Jedis jedis = new Jedis("127.0.0.1", 6379); // 发送 PING 命令,测试连接是否成功 System.out.println(jedis.ping()); } } ``` 这段代码演示了如何建立与 Redis 服务器的连接,并通过发送 `PING` 命令验证连接状态。这是使用 Redis 进行开发的基础步骤之一。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值