Redis

Redis keys not shown while using Cache facade in Laravel

邮差的信 提交于 2021-02-16 05:28:07
问题 I'm using Laravel Cache facade, and the CACHE_DRIVER=redis . All data is saved in Redis successfully, but when I use redis-cli and run keys* there are not keys! When using the command flushall in redis-cli it loads the data again from the database, so that means the keys are already stored in Redis. 回答1: Redis has 16 databases indexed 0 - 15. The default database index is 0 , so when you run redis commands without specifying the database index, you're only running commands against database

spring-session-data-redis使用redis共享session

风格不统一 提交于 2021-02-15 13:07:11
1:添加jar包 < dependency > < groupId > org.springframework.data </ groupId > < artifactId > spring-data-redis </ artifactId > < version > 2.0.3.RELEASE </ version > </ dependency > < dependency > < groupId > redis.clients </ groupId > < artifactId > jedis </ artifactId > < version > 2.9.0 </ version > </ dependency > < dependency > < groupId > org.springframework.session </ groupId > < artifactId > spring-session-data-redis </ artifactId > < version > 2.0.1.RELEASE </ version > </ dependency > < dependency > < groupId > org.apache.commons </ groupId > < artifactId > commons-pool2 </ artifactId >

redis线程模型

喜欢而已 提交于 2021-02-15 13:01:28
redis采用自己实现的事件分离器,效率比较高,内部采用非阻塞的执行方式,吞吐能力比较大。 不过,因为一般的内存操作都是简单存取操作,线程占用时间相对较短,主要问题在io上,因此,redis这种模型是合适的,但是如果某一个线程出现问题导致线程占用很长时间,那么reids的单线程模型效率可想而知. 引自网络: 总体来说快速的原因如下: 1)绝大部分请求是纯粹的内存操作(非常快速) 2)采用单线程,避免了不必要的上下文切换和竞争条件 3)非阻塞IO 内部实现采用epoll,采用了epoll+自己实现的简单的事件框架。epoll中的读、写、关闭、连接都转化成了事件,然后利用epoll的多路复用特性,绝不在io上浪费一点时间 这3个条件不是相互独立的,特别是第一条,如果请求都是耗时的,采用单线程吞吐量及性能可想而知了。应该说redis为特殊的场景选择了合适的技术方案。 关于线程安全问题 redis实际上是采用了线程封闭的观念,把任务封闭在一个线程,自然避免了线程安全问题,不过对于需要依赖多个redis操作的复合操作来说,依然需要锁,而且有可能是分布式锁 来源: oschina 链接: https://my.oschina.net/u/2754191/blog/670316

解决Redis容器使用redis.conf启动失败

北城余情 提交于 2021-02-15 06:53:07
本文实现功能 解决redis容器启动redis.conf时启动及失败 简单了解redis.conf的一些配置 认识docker run命令的参数 学习redis.conf的配置文件 打开redis.conf后会看到很多的无用信息 我们使用grep命令来简单的处理一个下,然后就可以看到redis.conf的所有配置信息,但是现在输入的命令是不可以编辑的 命令 cat redis.conf | grep -v "#" | grep -v "^$" 上边的这个虽然把redis.conf的所有配置信息弄出来了,但是不能修改,我们可以把这个内容输出到另外一个文件里边,这个时候就可以在redis下可以看到一个redis-test.conf的一个文件 执行命令: cat redis.conf | grep -v "#" | grep -v "^$" ->redis-test.conf 这个时候就可以在redis-test.conf里边修改一些配置信息 在这里我们先了解几个配置,后边的配置咔咔会在后续的文件依序写出 daemonize no :redis默认是不作为守护进程使用的,这也就是说为什么在你不修改配置文件时直接使用redis-server /redis/redis.conf 启动redis会直接显示一个服务,你在这个终端就没有办法操作其他,只能新开一个终端来连接redis

redis主从复制读写分离

旧时模样 提交于 2021-02-15 03:33:02
主从复制,读写分离 Master/Slave 是什么 master写入 slave读取 能干嘛 读写分离,更加安全,性能提升 怎么玩 一主二仆、薪火相传、反客为主 周明老师,能够把长篇大论总结的很精辟。 配从不配主 slaveof 主库ip 主库端口 准备三台机器 一主,二从 66是主机,61、62作为从机。 通过info replication 进行查看身份。 192 .168 .1 .66 :6379> info replication # Replication role :master connected_slaves :0 master_replid :ba9a0c9d5cbeb6f7ce375b4c3559f5e848fc7025 master_replid2 :0000000000000000000000000000000000000000 master_repl_offset :0 second_repl_offset :-1 repl_backlog_active :0 repl_backlog_size :1048576 repl_backlog_first_byte_offset :0 repl_backlog_histlen :0 设置61、62跟随66 192 .168 .1 .61 :6379> slaveof 192 .168 .1 .66 6379

后端架构师图鉴

放肆的年华 提交于 2021-02-15 02:57:15
后端架构师图鉴 作者:星晴(当地小有名气,小到只有自己知道的杰伦粉) 忽略:我准备从博客园( https://www.cnblogs.com/pingping-joe/ )转移到公众号了!!! 从2017年开始写博客到现在,经历了几家公司,碰到不少有趣的人,人也成长不少,褪去幼稚的面孔,只剩下越发后移的发际线;一路坎坷,唯一还在坚持的就只剩下写博客了,虽然不知道为什么坚持,但是感觉还不错。 今天第一天发公众号推文,作为搞java的,还是给大家准备了架构师的学习路线。当然如果大家都知道,可以忽略。 架构师学习路线大致分为五个部分: 互联网运维 Git,Maven,Gradle,jenkins,linux 框架源码分析 Spring , Mybatis 并发编程 并发包 性能调优 JVM调优,Mysql调优,Nginx调优,Tomcat调优 分布式框架 分布式服务治理:Dubbo, Zookeeper, SpringCloud-Alibaba,SpringCloud-NetFliex 分布式消息:RocketMq, RabbitMq, Kafka 分布式数据缓存:Redis 分布式数据存储:Sharding-sphere 分布式通信:Netty 分布式搜索引擎:ELK 如果想要完整的学习路线,请关注公众号,并且回复【1】,谢谢支持 本文分享自微信公众号 - 喜欢奶茶的星晴(code

牛逼,手撸一个SpringBoot缓存系统!

人盡茶涼 提交于 2021-02-15 00:56:14
缓存是最直接有效提升系统性能的手段之一。个人认为用好用对缓存是优秀程序员的必备基本素质。 本文结合实际开发经验,从简单概念原理和代码入手,一步一步搭建一个简单的二级缓存系统。 一、通用缓存接口 1、缓存基础算法 FIFO(First In First Out) ,先进先出,和OS里的FIFO思路相同,如果一个数据最先进入缓存中,当缓存满的时候,应当把最先进入缓存的数据给移除掉。 LFU(Least Frequently Used) ,最不经常使用,如果一个数据在最近一段时间内使用次数很少,那么在将来一段时间内被使用的可能性也很小。 LRU(Least Recently Used) ,最近最少使用,如果一个数据在最近一段时间没有被访问到,那么在将来它被访问的可能性也很小。也就是说,当限定的空间已存满数据时,应当把最久没有被访问到的数据移除。 2、接口定义 简单定义缓存接口,大致可以抽象如下: package com.power.demo.cache.contract; import java.util.function. Function ; /** * 缓存提供者接口 **/ public interface CacheProviderService { /** * 查询缓存 * * @param key 缓存键 不可为空 **/ <T extends Object > T get

写给Web前端开发的后端指南

空扰寡人 提交于 2021-02-14 18:51:39
前言 在若干次前的一场面试,面试官看我做过 python 爬虫/后端 的工作,顺带问了我些后端相关的问题: 你觉得什么是后端? 送命题 。当时脑瓦特了,答曰: 逻辑处理和数据增删改查。。。 当场被怼得体无完肤,羞愧难当。事后再反思这问题,结合资料总结了一下。发现自己学过的 Redis 、 Elasticsearch 和 DNS 等其实都属于后端知识体系范畴。 在本文中,我将尝试 总结前端须知的后端体系入门 。 无论你的动机是什么,这个体系里都有你想要了解或学习的东西: 存储和服务如何结合在一起? 什么时候(或为什么)我需要用到这个? 全栈之路该怎么走? 各技术的主流框架选择 本文目录 : 1. Web / Application Servers 2. 负载均衡器: Load Balancer 3. 域名解析系统,DNS 4. HTTPS / SSL证书 5. 数据库,Database 6. Blob / 文件存储 7. 内容分发网络(CDN) 8. 缓存服务:Caching Service 9. 消息队列:Message queue 1. Web / Application Servers Web Servers 服务器:Web服务器,使用 http 协议向Web提供内容。 Application Servers :应用程序服务器,托管并公开业务逻辑和进程。 1.1 服务器端语言

Redis 面试一定要知道的 3 个 问题!

Deadly 提交于 2021-02-14 17:42:25
Java技术栈 www.javastack.cn 关注阅读更多优质文章 作者:_BKing 地址:cnblogs.com/xiaowei123/p/13211403.html 最近都没看 Redis ,现在回来温习下,现在从Redis的三大缓存开始重新探一探有多深有多浅( ^▽^ ) 让我来开始知识的醍醐灌顶把!是时候表演真正的技术了。(哔哔哔哔....) 铁子们,看在二哈这么卖力的份上,如果觉得本文对你有帮助的话,请动动你的小手,比个❥(^_-)爱心推荐哟。 接下来就开始我们的 Redis 的三大缓存问题之旅,让我们坐上二哈的小飞船游一游这圣女峰。 在 Redis 缓存中有三个必须要知道概念: 缓存穿透、缓存击穿和缓存雪崩。 缓存穿透 那什么是缓存穿透,它就是指当用户在查询一条数据的时候,而此时数据库和缓存却没有关于这条数据的任何记录,而这条数据在缓存中没找到就会向数据库请求获取数据。它拿不到数据时,是会一直查询数据库,这样会对数据库的访问造成很大的压力。 如:用户查询一个 id = -1 的商品信息,一般数据库 id 值都是从 1 开始自增,很明显这条信息是不在数据库中,当没有信息返回时,会一直向数据库查询,给当前数据库的造成很大的访问压力。 这时候我们要想一想,该如何解决这个问题呢?o(╥﹏╥)o 一般我们可以想到从缓存开始出发

BAT大厂招聘 Java 程序员的技术标准,你达到要求了吗?

依然范特西╮ 提交于 2021-02-14 12:13:27
前言 今天整理了一篇Java 程序员面试大厂的技术标准 文末福利 BATJava 程序员的技术标准 阿里巴巴篇 扎实的计算机专业基础,包括算法和数据结构,操作系统,计算机网络,计算机体系结构,数据库等 具有扎实的Java编程基础,理解IO、多线程等基础框架 熟练使用Linux系统的常用命令及shell有一定了解 精通多线程编程,熟悉分布式,缓存,消息队列等机制; 熟悉JVM,包括内存模型、类加载机制以及性能优化 精通spring mvc、orm框架(ibatis或hibernate)、模板引擎(velocity)、关系型数据库设计及SQL 具备良好的面向对象编程经验,深入理解OO、AOP思想,具有很强的分析设计能力,熟悉常用设计模式 有大型分布式、高并发、高负载、高可用性系统设计和稳定性经验 熟悉面向对象设计开发,熟悉各种常用设计模式,并有在具体的应用场景落地经验 熟悉Spring、iBatis,等开源框架及消息,存储等常用中间件。 有通读过开源框架源码 熟悉基于Oracle或者Mysql的设计和开发、Linux操作系统 熟悉SOA,有平台化实施经验者,有大数据量、高并发系统和大型网站构建经验 分布式系统应用架构设计与研发经验,精通Java EE、SOA、OSGI等相关技术 对各种开源的框架如Spring、Hibernate等有深入的了解,对框架本身有过开发或重构者可优先考虑