Redis
特点
-
性能极高
-
原子性
-
支持事务
-
支持消息/订阅模式
-
支持key过期时间特性
-
支持多种数据结构
-
支持持久化
-
支持主从复制
-
支持集群
-
官方仅支持Linux系统
应用场景
-
数据缓存应用(最多使用)
热点数据: 数据库中数据被访问的频率是不均匀的,频繁被访问的数据称为热点数据((Hot Spot Data)为了提高用户的请求速度和降低服务器的负载,降低数据库的读写次数,将一些在短时间之内不会发生变化且被频繁访问热点数据,存放就到缓存中 (类似于 MyBatis 的缓存机制)
-
消息队列
Redis 支持消息/订阅模式,可以构建实时的消息队列,实现不同系统之间的实时交互通信,
-
数据过期处理
利用 Redis 支持的过期时间特性可以定时清除过期数据,如定期活动(精确到毫秒)
-
计数器应用
利用 Redis 的原子性,可以轻松地使用 RedisINCR (自增) 和 DECR (自减) 命来构建计数系统,关键是不用担心数据库的并发性问题一般用于网站访问统计
-
会话缓存应用
分布式集群架构中的 session 分离 (代替Session 会话,保存 Web 用户状态信息)
单进程单线程架构
-
Redis 使用单进程单线程架构和 I/0 多路复用模型来实现高性能的内存数据库服务
-
单线程的 Redis 处理速度快的原因
-
纯内存访问
redis将所有的数据存放在内存中,内存的相应时间大约为100ns这是redis 达到每秒万级别访问的基础
-
非阻塞I/O
redis 使用 epoll 作为I/0多路复用技术的实现,再加上 redis 自身的时间处理模型将epoll 中的连接、读写关闭都转换为时间,不在网络I/O 上浪费过多的时间
-
单线程模式
单线程避免了线程切换和资源竞争,这样服务端也就没有了线程同步和竞争锁问题
-
Redis的数据
所有数据都是以key-value形式存储(key必须为字符串)
-
插入数据(设置一个key-value对)
127.0.0.1:6379> set name wwl
-
删除数据(删除key以及对应的value)
127 .0.0.1 :6379> del name
-
查询数据(取出key所对应的value)
127 .0.0.1 :6379> get name
-
修改数据(修改已存在key对应的value)
127.0.0.1 :6379> set name wwl2
Redis通用命令
Redis 提供通用的命令对数据库和各种数据类型进行操作
-
keys* 查询所有key
-
type 返回值的类型
-
exists 验证数据(检查键Key是否存在)
-
select 选择数据库(Redis数据库编号0~15)
Redis支持的数据类型
-
Stirng(字符串)
-
List(列表)
-
Set(无序集合)
-
Zset(有序集合)
-
Hash(哈希表)
Redis核心对象 -redisObject
在Redis中有一个[核心的对象] 叫做redisObject ,是用来表示所有的 key和 value的,用 redisObject 结构体来表示 String、Hash、List、Set、Zset五种数据类型
String(字符串)类型
String 是 Redis 最基本的数据类型,底层数据结构存储方式有三种 int、raw、embstr它可以存储字符串、整数、浮点数、二进制等数据
-
常见命令
·mset - 一次设置多个key值(成功返回OK,失败返回0) ·incr - 对key的值做++操作 ·append - 给指定 key 的字符串追加 value
-
应用
-
(存储对象)
Java对象
-
转换--JSON字符串-String类型--Redis服务器
-
转换--对象序列化(反)-String类型--Redis服务器
-
-
计数器
由于 incr、incrby、decr、 decrby 等递增/递减指令本身就具有 Redis 原子操作的特性,所以可以利用其来实现原子计数的效果
-
__EOF__

本文链接:https://www.cnblogs.com/3-DG/p/17745338.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现