Redis_常见问题

参考

https://github.com/AobingJava/JavaFamily

为什么使用Redis?

传统的关系型数据库已经不适用所有场景了,例如频繁变化和操作的短时热点数据,如果直接访问MySQL这类的关系型数据库,会极大地增添数据库负担,严重时可能引起系统崩溃,所以考虑引入缓存中间件Redis。

Redis与Memcached的区别,为什么选择Redis?

  • Redis支持的数据结构更丰富

  • Redis支持原生集群

  • Redis单核,MemCached多核,在存储小数据上Redis性能更高,大数据上略逊于MemCached

  • MemCached key 不能超过 250 个字节;

  • MemCached value 不能超过 1M 字节;

  • MemCached key 的最大失效时间是 30 天;

  • MemCached 只支持 K-V 结构,不提供持久化和主从同步功能。

Redis为什么快?

  • 完全基于内存,类似HashMap
  • 单线程,避免不必要的上下文切换和竞争条件
  • 多路IO复用模型,非阻塞IO
  • 数据结构简单
  • 构建了VM机制

什么是上下文切换

比如你看书的时候,突然有朋友说接他看一下,然后你借给他,等他还给你,你要再翻到你之前看到的页码,这就是一个切换过程。

Redis的线程模型是什么?

https://doocs.github.io/advanced-java/#/./docs/high-concurrency/redis-single-thread-model
Redis内部使用文件事件处理器File Event Handler,其包含四个部分:

  • 多个socket
  • IO多路复用程序
  • 文件事件分派器
  • 事件处理器
    • 连接应答处理器
    • 命令请求处理器
    • 命令回复处理器
      文件事件处理器是单线程的,所以Redis是单线程模型,采用IO多路复用机制通知监控多个socket,多个socket可能会并发产生不同操作,每个操作对应不同的文件事件,IO多路复用程序会将事件放入队列,事件分派器依次从队列中取事件,交给对应的事件处理器处理。
      在这里插入图片描述

单线程的Redis是否浪费了多核服务器的性能?

并不会。可以在一台服务器部署多个Redis实例。

Redis有哪些数据结构和应用场景

https://blog.csdn.net/Chill_Lyn/article/details/104430104
https://blog.csdn.net/Chill_Lyn/article/details/104484301

  • 基本数据结构
    • String
      • 缓存 setex key seconds value
      • 计数器 incr key incrby key increment
      • 共享用户session
    • Hash
      • 对象有很多属性 hset key field value
    • List
      • 消息队列 lpush key value1 rpop key
      • 分页展示 lrange key start stop
    • Set
      • 获取随机数据 srandmember key [count] spop key [count]
      • 交集、并集、差集 `sinter key1 [ke
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用提到了Redis启动的闪退问题,引用介绍了两种启动Redis的方法,但都会导致闪退。下面我将总结一些常见的Redis启动问题。 1. Redis配置错误:启动Redis时,如果配置文件有错误或者缺少必要的配置,可能会导致启动失败。可以检查redis.conf文件中的配置是否正确,并确保所有必要的配置项都被设置。 2. 端口被占用:如果Redis要使用的端口已经被其他程序占用,那么Redis启动时会失败。可以通过检查端口占用情况,或者修改Redis配置文件中的端口号来解决该问题。 3. 内存不足:Redis需要一定的内存来运行,如果系统内存不足,可能会导致Redis启动失败。可以通过增加系统内存或者减少Redis的内存使用来解决该问题。 4. 权限问题:如果Redis的执行文件或者配置文件没有足够的权限,可能会导致启动失败。可以检查文件的权限设置,并确保Redis所在的目录对当前用户有足够的访问权限。 5. 版本兼容性问题:在某些情况下,Redis的版本与操作系统或其他依赖软件之间存在兼容性问题,可能会导致启动失败。可以尝试升级或降级Redis版本,或者解决相关的依赖冲突来解决该问题。 需要注意的是,这只是一些常见的Redis启动问题,具体问题可能因环境和配置的不同而有所差异。如果还遇到其他问题,建议查看Redis的文档或社区中的解决方案,或者尝试搜索类似的问题和解决方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* [windows下Redis启动闪退问题解决经验汇总](https://blog.csdn.net/httpmc2018/article/details/121082182)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *3* [redis 常见问题](https://blog.csdn.net/u013743253/article/details/124093790)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值