小编v11*_*v11的帖子

如何设置Redis max memory?

我在这里找到configure ,它只是说使用指定configure的命令:

./redis-server <path>/redis.conf
Run Code Online (Sandbox Code Playgroud)

但是,我不知道如何编写配置.所以我觉得在默认配置.但是,我仍然不明白如何设置最大内存.它只是在配置中添加这一行吗?

maxmemory 2mb
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我想知道默认内存是多少.而我想将内存设置为2GB,该怎么办?

然后,我已将此行添加到redis configure以将maxmemory设置为40GB:

maxmemory 41943040
Run Code Online (Sandbox Code Playgroud)

我在redis-cli中使用命令:

config get maxmemory
Run Code Online (Sandbox Code Playgroud)

它告诉我:

127.0.0.1:6379> config get maxmemory
1) "maxmemory"
2) "41943040"
Run Code Online (Sandbox Code Playgroud)

但是,当密钥数约为200000时,我的java程序会抛出这样的异常:

Exception in thread "Thread-228" redis.clients.jedis.exceptions.JedisDataException: OOM command not allowed when used memory > 'maxmemory'.
    at redis.clients.jedis.Protocol.processError(Protocol.java:117)
    at redis.clients.jedis.Protocol.process(Protocol.java:151)
    at redis.clients.jedis.Protocol.read(Protocol.java:205)
    at redis.clients.jedis.Connection.readProtocolWithCheckingBroken(Connection.java:297)
    at redis.clients.jedis.Connection.getStatusCodeReply(Connection.java:196)
    at redis.clients.jedis.Jedis.hmset(Jedis.java:644)
    at cn.ict.dt2redis.analyser.AbstractAnalyser.pushOne(AbstractAnalyser.java:21)
    at cn.ict.dt2redis.analyser.BatchAbstractAnalyser.run(BatchAbstractAnalyser.java:16)
    at java.lang.Thread.run(Thread.java:722)
Run Code Online (Sandbox Code Playgroud)

我不知道它,我是否成功将最大内存设置为40 GB?怎么做?请详细给我一些代码.

redis

24
推荐指数
4
解决办法
4万
查看次数

在Spring MVC中返回ModelAndView和返回String有什么区别?

我想知道ModelAndView和String之间的区别.

@RequestMapping(value="/")
    public ModelAndView mainPage() {
        return new ModelAndView("home");
}
Run Code Online (Sandbox Code Playgroud)

第二段代码是关于返回String:

@RequestMapping(value="/")
    public String mainPage() {
        return "home";
}
Run Code Online (Sandbox Code Playgroud)

spring

16
推荐指数
1
解决办法
1万
查看次数

如何使用docker remote api创建容器?

我是码头工人的新手.我已经阅读了docker remote API中的教程.在创建容器方面.它向我展示了太多的填充物.我想知道什么等同于这个命令:

docker run -d -p 5000:5000 --restart = always --name registry registry:2.

我不知道.有人能告诉我吗?谢谢!

docker

12
推荐指数
2
解决办法
1万
查看次数

数据插入时如何在Spring-mongodb中重命名字段名?

我使用spring mongodb到我的项目.当我插入这个类的数据时:

public class Person {

    @Id
    private String personId;

    private String name;
    private int age;
    private List<String> friends;
    private Date tempValue;
}
Run Code Online (Sandbox Code Playgroud)

它插入到mongodb:

{
  "_id" : ObjectId("543de17f2e631eb39036e60a"),
  "name" : "Johnathan",
  "age" : 73,
  "friends" : ["hh", "hhhh", "hoho"],
  "tempValue" : ISODate("2014-10-15T02:52:47.721Z")
}
Run Code Online (Sandbox Code Playgroud)

我想将"tempIntergeValue"的字段名称更改为"temp_value",它更像是数据库名称规则.

java spring mongodb

8
推荐指数
1
解决办法
7013
查看次数

如何通过Spring @PostConstruct初始化final变量?

我必须初始化一些最终变量,但这些值需要由 Spring Properties 读取

public class CrawlerClient{
    @Autowired
    @Qualifier("crawlerProperties")
    private Properties crawlerProperties;

    private Integer  final maxTopic;
    public static void main(String[] args) {
        //initialize();
    }
    @PostConstruct
    private void initialize(){
        List<Topic> topics = topicBusiness.getAll();
        List<Blogger> bloggers = bloggerBusiness.getAll();
        List<Clue> clues = clueBusiness.getAll();
        ClueQueue.addAll(clues);
        TopicQueue.addAll(topics);
        BloggerQueue.addAll(bloggers);

    }
..
}
Run Code Online (Sandbox Code Playgroud)

我想初始化“maxTopic”变量,但值在属性中,所以我无法在构造中执行此操作,我该怎么做?我只知道删除“final”键。最后,我是这样做的:

final Integer maxTopic;
    final Integer maxBlogger;
    final Integer maxClue;
    @Autowired
    public CrawlerClient(@Qualifier("crawlerProperties")Properties crawlerProperties){
        this.maxTopic = Integer.parseInt(crawlerProperties.getProperty("MaxTopic"));
        this.maxBlogger = Integer.parseInt(crawlerProperties.getProperty("MaxBlogger"));
        this.maxClue = Integer.parseInt(crawlerProperties.getProperty("MaxClue"));
    }
Run Code Online (Sandbox Code Playgroud)

有人能用更好的方法解决吗?

java spring dependency-injection

6
推荐指数
1
解决办法
1万
查看次数

如何在 TypeScript 中使用“RegExp.exec”?

我想在 RegExp 中使用方法“exec”。我写下面的代码来尝试做:

let result = <RegExpExecArray>{};
while (result = expressionCheck.exec(text)) {
    let matchIndex = result.index;
    let t = result[0].length;
    matchRanges.push(new RegRange(matchIndex, t));
}
Run Code Online (Sandbox Code Playgroud)

但它会引发以下错误:

Build:Type 'RegExpExecArray | null' is not assignable to type 'RegExpExecArray'.
Run Code Online (Sandbox Code Playgroud)

我尝试将循环条件修改为:

while ((result = expressionCheck.exec(text)) != null) {
Run Code Online (Sandbox Code Playgroud)

它仍然不起作用。那么这种情况下的循环条件怎么写呢?

typescript

5
推荐指数
1
解决办法
7316
查看次数

如何创建docker注册表镜像

我使用 MAC OS X。我想在本教程中使用镜像,它的第 1 步需要这样做:

docker --registry-mirror=http://<my-docker-mirror-host> -d
Run Code Online (Sandbox Code Playgroud)

但是,当我在终端中使用此命令时,它不起作用:

提供但未定义的标志:--registry-mirror 请参阅“docker --help”。

然后,我在教程中使用另一种方式:

您可以将 --registry-mirror 选项添加到 /etc/default/docker 中的 DOCKER_OPTS 变量

我不知道在哪里添加这个 DOCKER_OPTS。我想在客户端 1.7.0 中使用镜像。谁能告诉我如何设置镜子?
我使用这个命令来创建镜像:

docker run -d -p 5000:5000 -e REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY=/Users/v11/Documents/docker-registry --restart=always --name mirror -e STANDALONE=false -e MIRROR_SOURCE=https://registry-1.docker.io -e MIRROR_SOURCE_INDEX=https://index.docker.io registry
Run Code Online (Sandbox Code Playgroud)

我测试了它,发现它不像它描述的那样可以从本地注册表下载。即使我没有使用这个命令:

docker push localhost:5000/batman/ubuntu
Run Code Online (Sandbox Code Playgroud)

这个命令以前可以用,真不知道怎么回事。也许标志“STANDALONE=false”会影响?我想设置镜像,谁能告诉我怎么做。谢谢。

docker docker-registry

1
推荐指数
1
解决办法
3166
查看次数

为什么同步锁定另一种方法?

我是java中的多线程的新手.我写了一些类来测试synchronized的函数.我有一些使用synchronized的方法:

    public class ShareUtil {
        private static Queue<Integer> queue = new LinkedList<Integer>();
        public static synchronized void do1(){
            System.out.println("do1");
            sleep();
        }
        public static synchronized void do2(){
            System.out.println("do2");
            sleep();
        }
        private static void sleep(){
            try {
                Thread.sleep(1000*50000);
            } catch (InterruptedException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
}
Run Code Online (Sandbox Code Playgroud)

你可以看到有两种方法使用synchronized,我运行两个线程分别使用这两种方法.

class Run1 implements Runnable{

    @Override
    public void run() {
        // TODO Auto-generated method stub
        ShareUtil.do1();
    }

}
class Run2 implements Runnable{

    @Override
    public void run() {
        // TODO Auto-generated method …
Run Code Online (Sandbox Code Playgroud)

java multithreading

0
推荐指数
1
解决办法
104
查看次数