Redis学习笔记

Redis学习笔记

Redis介绍

1、一次只执行一条命令
2、不要执行长命令,如Keys、flushall、flushdb、slow lua script、mutil/exec、operate、big value(collection)

3、不是单线程
fysnc file descriptor
close file descriptor

单线程:
1、纯内存,数据都放在内存中
2、非阻塞IO
3、避免了线程切换和竞态消耗

Redis API

通用命令

keys
  • keys * :列出所有key
  • keys [pattern]:

一般不在生产环境使用,因为key会比较多,而redis是单线程的,时间复杂度是O(N);

dbsize

计算key的总数,时间复杂度是O(1),因为redis内置了计数器去记录Key的总数;

exists key

指定的key是否存在,存在返回1,不存在返回0;时间复杂度为O(1);

del key [key …]

删除指定的key-value;成功删除返回1,否则返回0;

expire key seconds

key在seconds秒后过期;

ttl key:查看key剩余的过期时间;返回-1代表key存在且没有过期时间;

persist key:去掉key的过期时间,让key成为不过期的key;

type key

返回key的类型;

常见命令的复杂度

上面提到的命令,但是没有列出来的,其时间复杂度都是O(1);
在这里插入图片描述

数据结构和内部实现

在这里插入图片描述

在这里插入图片描述

Redis数据结构

字符串

key是字符串,但是

最大是512MB,

缓存、计数器、分布式锁

get key:获取key对应的value,O(1);
set key value:设置key-value;
del key:删除key-value;
incr key:key自增1,如果key不存在,自增后get(key)=1,O(1)
der key:key自减1,如果key不存在,自增后get(key)=-1,O(1)
incrby key k:key自增k,如果key不存在,自增后get(key)=k,O(1)
decr key k:key自减k,如果key不存在,自减后get(key)=-k,O(1)
set key value:不管Key是否存在,都设置
setnx key value:Key不存在,才设置
set key value xx:key存在,才设置

mget:批量获取key,原子操作,节省了网络开销
mset:批量设置value,原子操作

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

应用

记录用户主页的访问量
incr userid:pageview(单线程,无竞争)

分布式id生成器

哈希(Hash)

结构

在这里插入图片描述

API

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

列表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Java客户端Jedis

Jedis使用

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Jedis连接优化

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Redis的其它功能

慢查询

声明周期
在这里插入图片描述

两个配置

在这里插入图片描述
在这里插入图片描述

配置方法
在这里插入图片描述

三个命令
在这里插入图片描述

在这里插入图片描述

Pipeline

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

Java实现

在这里插入图片描述

发布订阅

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

消息队列
在这里插入图片描述

### Redis 学习笔记概述 Redis 是一种高性能的键值存储系统,支持多种数据结构并提供丰富的功能。为了全面掌握 Redis 的使用方法和技术细节,一份详尽的学习笔记应当覆盖以下几个方面: #### 一、基础概念介绍 - **定义与特性** - Redis 是一个开源的内存数据结构存储库,可以用作数据库缓存和消息中间件[^1]。 - **应用场景** - 高效的数据读写操作使其适用于高速缓存场景;持久化的选项也允许作为可靠的主数据库。 #### 二、环境搭建指南 - **安装过程** - 安装完成后可以通过 `redis-server` 命令启动服务,默认情况下这会在前台运行并且占用当前终端会话[^2]。 - **后台模式配置** - 推荐通过编辑 `/usr/local/src/redis-6.2.6/redis.conf` 文件中的设置项使 Redis 在后台稳定工作。 #### 三、核心功能解析 - **基本命令集** - 包括字符串(Strings)、哈希(Hashes)、列表(Lists)等常见数据类型的增删改查指令。 - **高级特性应用** - 发布订阅(Pub/Sub),事务处理(Transaction),Lua脚本执行等功能的应用实例。 #### 四、集成开发实践 - **Spring Boot 整合案例** - 使用 Spring Data Redis 提供的 `RedisTemplate` 对象简化 Java 应用程序同 Redis 数据源之间的交互逻辑[^3]。 #### 五、优化策略探讨 - **性能调优技巧** - 考虑到 CPU 并非主要瓶颈因素而是受制于物理 RAM 和网卡吞吐能力的影响,合理规划硬件资源分配对于提升整体效率至关重要。 - **预加载机制说明** - 当应用程序首次上线前预先填充部分热点数据至 Redis 中可以有效缓解高峰期的压力,提高响应速度[^4]。 #### 六、可靠性保障措施 - **持久化方案对比** - RDB 快照方式能够在指定时间间隔内保存数据副本,确保意外断电等情况下的恢复可能性。 ```bash # 启动Redis服务器(建议采用守护进程方式) $ redis-server /path/to/redis.conf --daemonize yes ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值