Redis

redis分布式锁-redisson

时间秒杀一切 提交于 2021-02-20 12:43:08
定义连接池 package cn.cao.config ; import org.redisson.Redisson ; import org.redisson.api.RedissonClient ; import org.redisson.config.Config ; import org.springframework.beans.factory.annotation. Value ; import org.springframework.context.annotation. Bean ; import org.springframework.context.annotation. Configuration ; /** * redisson 配置类 * Created on 2020/11/01 */ @Configuration public class RedissonConfig { @Value ( "${spring.redis.host}" ) private String host ; @Value ( "${spring.redis.port}" ) private String port ; @Value ( "${spring.redis.password}" ) private String password ; @Bean public

Docker入门之docker-compose

我是研究僧i 提交于 2021-02-20 02:50:19
  参考:https://blog.51cto.com/9291927/2310444   一,Docker-compose简介   1,Docker-compose简介   Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。 Docker-Compose将所管理的容器分为三层,分别是工程(project),服务(service)以及容器(container)。Docker-Compose运行目录下的所有文件(docker-compose.yml,extends文件或环境变量文件等)组成一个工程,若无特殊指定工程名即为当前目录名。一个工程当中可包含多个服务,每个服务中定义了容器运行的镜像,参数,依赖。一个服务当中可包括多个容器实例,Docker-Compose并没有解决负载均衡的问题,因此需要借助其它工具实现服务发现及负载均衡。 Docker-Compose的工程配置文件默认为docker-compose.yml,可通过环境变量COMPOSE_FILE或-f参数自定义配置文件,其定义了多个有依赖关系的服务及每个服务运行的容器。 使用一个Dockerfile模板文件,可以让用户很方便的定义一个单独的应用容器。在工作中,经常会碰到需要多个容器相互配合来完成某项任务的情况。例如要实现一个Web项目,除了Web服务容器本身

为什么 ElasticSearch 比 MySQL 更适合复杂条件搜索

时光总嘲笑我的痴心妄想 提交于 2021-02-19 22:49:33
点击上方" 程序员历小冰 ",选择“置顶或者星标” 你的关注意义重大! 熟悉 MySQL 的同学一定都知道,MySQL 对于复杂条件查询的支持并不好。MySQL 最多使用一个条件涉及的索引来过滤,然后剩余的条件只能在遍历行过程中进行内存过滤,对这个过程不了解的同学可以先行阅读一下 《MySQL复杂where条件分析》 。 上述这种处理复杂条件查询的方式因为只能通过一个索引进行过滤,所以需要进行大量的 I/O 操作来读取行数据,并消耗 CPU 进行内存过滤,导致查询性能的下降。 而 ElasticSearch 因其特性,十分适合进行复杂条件查询,是业界主流的复杂条件查询场景解决方案,广泛应用于订单和日志查询等场景。 下面我们就一起来看一下,为什么 ElasticSearch 适合进行复杂条件查询。 ElasticSearch 简介 Elasticsearch 是开源的实时分布式搜索分析引擎,内部使用 Lucene 做索引与搜索。它提供"准实时搜索"能力,并且能动态集群规模,弹性扩容。 Elasticsearch 使用 Lucene 作为其全文搜索引擎,用于处理纯文本的数据,但 Lucene 只是一个库,提供建立索引、执行搜索等接口,但不包含分布式服务,这些正是 Elasticsearch 做的。 下面,我们来介绍一下 ElasticSearch 的相关概念。为了便于初学者理解

面试官问:你说说Redis的几个过期策略?

这一生的挚爱 提交于 2021-02-19 10:47:41
在使用redis时,一般会设置一个过期时间,当然也有不设置过期时间的,也就是永久不过期。当设置了过期时间,redis是如何判断是否过期,以及根据什么策略来进行删除的。 设置过期时间 expire key time(以秒为单位) 这是最常用的方式 setex(String key, int seconds, String value) 字符串独有的方式 除了字符串自己独有设置过期时间的方法外,其他方法都需要依靠expire方法来设置时间如果没有设置时间,那缓存就是永不过期如果设置了过期时间,之后又想让缓存永不过期,使用persist key 三种过期策略 定时删除 在设置key的过期时间的同时,为该key创建一个定时器,让定时器在key的过期时间来临时,对key进行删除 优点: 保证内存被尽快释放 缺点: 若过期key很多,删除这些key会占用很多的CPU时间,在CPU时间紧张的情况下,CPU不能把所有的时间用来做要紧的事儿,还需要去花时间删除这些key 定时器的创建耗时,若为每一个设置过期时间的key创建一个定时器(将会有大量的定时器产生),性能影响严重 懒汉式式删除 key过期的时候不删除,每次通过key获取值的时候去检查是否过期,若过期,则删除,返回null。 优点: 删除操作只发生在通过key取值的时候发生,而且只删除当前key,所以对CPU时间的占用是比较少的

Multi-Field Querying on Redis Using Redis Spring

允我心安 提交于 2021-02-19 08:00:42
问题 this will be a very baic question since im new to Spring-Redis Im currently in the process of learning about Redis database and I'm working on a feature on priority, im compelled to Use Redis for this feature. Below in the challenge/Query im having. Right now we have a DataModel as below: @RedisHash("Org_Work") public class OrgWork { private @Id @Indexed UUID id; private @Indexed String CorpDetails; private @Indexed String ContractType; private @Indexed String ContractAssigned; private

What is Redis change its own configurations

限于喜欢 提交于 2021-02-19 03:53:22
问题 Redis change its own config dir to /etc/cron.d and dbfile to ntp instead of default configuration. Once we restart the redis it will reset to /var/lib/redis and dump.rdb but after awhile, it gives "Failed opening the RDB file" error Default dire and rdb file has correct permission and redis only allow for internal IPs. cli output 127.0.0.1:6381> CONFIG GET dir 1) "dir" 2) "/etc/cron.d" 127.0.0.1:6381> CONFIG GET "dbfilename" 1) "dbfilename" 2) "ntp" /var/log/redis/redis-server.log 3204:M 21

django:redis:CommandError: You have not set ASGI_APPLICATION, which is needed to run the server

末鹿安然 提交于 2021-02-19 02:20:10
问题 I am trying to create socket in django. I installed asgi_redis as per this link. When I ran the command python manage.py runserver, I am getting below error. >python manage.py runserver CommandError: You have not set ASGI_APPLICATION, which is needed to run the server. As I havent started the redis, above error might be because of this. I am bit confused , do I need to install Redis separately or just need to start the redis as I have already installed the asgi_redis? project/settings.py file

redist-c#连接

前提是你 提交于 2021-02-19 01:48:53
NuGet先安装StackExchange . Redis . StrongName ConnectionMultiplexer redis = ConnectionMultiplexer.Connect( " 127.0.0.1:6379,password=mima " ); IDatabase db = redis.GetDatabase( 2 ); if (db.StringSet( " testKey " , " ssssss22222 " )) { var val = db.StringGet( " testKey " ); Console.WriteLine(val); } 来源: oschina 链接: https://my.oschina.net/u/4283481/blog/4133424

is there a way to get the client IP in redis?

强颜欢笑 提交于 2021-02-18 22:37:12
问题 I did a web search but found nothing on this. I am running redis on a cluster and would like to find out which machine is connecting to redis ( especially when no machine is supposed to be connecting, but redis still says some machine connected). thanks in advance. 回答1: With MONITOR, only the clients actually sending traffic to Redis will be shown. If you just need to get a list of connected clients, you can use the CLIENT LIST command. $ redis-cli client list It will return a table whose

敖丙:春招字节跳动、蘑菇街四轮面试,分别问了啥?

谁说胖子不能爱 提交于 2021-02-18 15:42:25
前言 这又是一期读者的面经分享,很巧的是,他在蘑菇街面了三轮,最后虽然没过,但是也希望分享出来大家瞅瞅。 我这周可能会单独做个大厂面试流程的视频,涉及每一轮的考察点注意事项,如果觉得有必要,可以留言让我知道你们想看啥。 面试经历 一. 11.20 字节跳动一面Java开发,直接挂(耻辱开头……) 介绍主要项目,怎么做的; 本来想简要介绍做的业务,但面试官要求详细介绍,所以二十分钟都在介绍业务; 送命问题:数据量多少? 说了实话,实际使用单表1000—10000级别。导致后面基本上面试官根本不想问问题了…… 对 Spring 的理解? 对 AOP 的理解? 讲一下 Java 的静态代理和动态代理 然后就没了,进入问问题环节…… 当然知道已经凉了。面试官说的问题主要在于,在研究所的技术栈还是太落后,说互联网的思路和我们这种人不一样。在提了并没有什么实际性的建议之后,结束面试。 收获: 第一次面试,终于踏出了这一步; 认识到了自己与一线大互联网公司的差距,待继续努力; 由于面试时的准备方向错误,在数据量方面的成果无心之失直接判了死刑,并没有表达出来真正的性能和准备的内容。以后准备,一定要向 大数据量、优化 等方向考虑! 表达能力太差。【对…… 的理解?】这种问题一抛出来,尝试用浅显易懂的方式 二. 12.04 蘑菇街一面高级 Java 开发 介绍主要项目(大概二十五分钟左右);