Redis数据库

本文介绍了Redis,一种快速的内存数据库,其特点包括单线程设计、丰富的数据结构、简单稳定的源码、持久化策略和主从复制功能。同时提及了如何利用Redis存储图片的方法。

Redis数据库

SQL数据库缺陷

image

常见NoSQL数据库

image

Redis特点

速度极快

Redis的所有数据都是存放在内存中,这是Redis 速度快的最主要原因
Redis是用C语言实现的,一般来说C语言实现的程序"距离"操作系统更近,执行速度相对会更快Redis使用了单线程架构,预防了多线程可能产生的线程切换和竞争问题

数据类型丰富

与很多键值对数据库不同的是,Redis中的值不仅可以是字符串,而且还可以是具体的数据结构,它主要提供了5种数据结构:字符串、哈希、列表、集合、有序集合。这样不仅能便于在许多应用场景的开发,同时也能够提高开发效率。

简单稳定

  • Redis的源码很少
  • Redis 使用单线程模型,这样不仅使得Redis服务端处理模型变得简单,而且也使得客户端开发变得简单
  • Redis不需要依赖于操作系统中的类库,Redis自己实现了事件处理的相关功能,应用更加稳定支持持久化
  • 通常看,将数据放在内存中是不安全的,一旦发生断电或者机器故障,重要的数据可能就会丢失,因此Redis,提供了两种持久化方式:RDB和AOF,即可以用两种策略将内存的数据保存到硬盘中,这样就保证了数据的可持久性。

主从复制

Redis提供了复制功能,实现了多个相同数据的Redis副本

Redis单进程单线程模型

image

Redis存取图片

思路:将图片转换成Base64,再以字符串形式存储入Redis数据库

### Redis 数据库使用指南 Redis 是一个开源的内存键值存储数据库,具有高性能、丰富的数据结构支持以及分布式能力。它被广泛用于缓存系统、消息队列和高并发应用中。以下是 Redis 的基本概念、连接方法及 Java 操作示例。 #### 1. Redis 简介 Redis 是一种 NoSQL 数据库,支持多种数据结构,如字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序集合(Sorted Set)。其设计目标是提供极高的读写性能,并支持持久化功能以防止数据丢失[^1]。 #### 2. 连接到 Redis 数据库 要使用 Redis 数据库,首先需要确保已正确安装并启动 Redis 服务。可以通过以下方式连接到 Redis: - **本地连接**:如果 Redis 在本地运行,默认端口为 6379,可以通过命令行工具 `redis-cli` 进行连接。 - **远程连接**:对于远程实例,需要指定主机地址和端口号,例如 `redis-cli -h <hostname> -p <port>`。 连接成功后,可以使用 Redis 提供的命令进行数据操作。例如,设置和获取键值对: ```bash SET mykey "Hello, Redis!" GET mykey ``` 此外,还可以通过编程语言提供的客户端库与 Redis 进行交互[^2]。 #### 3. 在 Java 中操作 Redis 在 Java 中操作 Redis 数据库通常需要借助 Redis 客户端库,如 Jedis 或 Spring Data Redis。以下是一个基于 Spring Data Redis 的配置示例: ```java import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.data.redis.serializer.StringRedisSerializer; @Configuration public class RedisConfiguration { @Bean public RedisTemplate<String, Object> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, Object> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); // 设置 Key 和 Value 的序列化器 redisTemplate.setKeySerializer(new StringRedisSerializer()); redisTemplate.setValueSerializer(new StringRedisSerializer()); return redisTemplate; } } ``` 通过上述配置,可以在 Java 应用程序中轻松地与 Redis 数据库交互[^3]。 #### 4. Redis 的持久化机制 Redis 支持两种主要的持久化方式: - **RDB(Redis Database Backup)**:定期将内存中的数据快照保存到磁盘上。 - **AOF(Append-Only File)**:记录每次写操作的日志,以便在重启时恢复数据。 开发者可以根据实际需求选择合适的持久化策略。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值