小编ehr*_*974的帖子

如何保存docker redis容器

我在使用redis数据库中的数据创建docker redis容器的映像时遇到问题。目前,我正在这样做:

docker pull redis
docker run --name my-redis -p 6379:6379 -d redis
redis-cli
127.0.0.1:6379> set hello world
OK
127.0.0.1:6379> save
OK
127.0.0.1:6379> exit
docker stop my-redis
docker commit my-redis redis_with_data
docker run --name my-redis2 -p 6379:6379 -d redis_with_data
redis-cli
127.0.0.1:6379> keys *
(empty list or set)
Run Code Online (Sandbox Code Playgroud)

我显然不明白这里的一些基本知识。docker commit不会从现有容器创建新映像吗?


好吧,我一直在做一些挖掘工作。hub.docker上的默认redis映像使用数据量,然后将其安装在容器中的/ data处。为了在容器之间共享此卷,您必须使用以下参数启动一个新容器:

docker run -d --volumes-from <name-of-container-you-want-the-data-from> --name <new-container-name> -p 6379:6379 redis
Run Code Online (Sandbox Code Playgroud)

请注意,参数的顺序很重要,否则docker run将静默失败。

docker volume ls
Run Code Online (Sandbox Code Playgroud)

会告诉您docker在您的计算机上已经创建了哪些数据卷。我还没有找到一种方法来给这些卷起一个琐碎的名字,而不是一个很长的随机字符串。

我还没有找到挂载数据卷的方法,而只是使用--volumes-from命令。


好的。我现在可以使用它了,但是很笨拙。

docker volume ls
docker volume inspect <id of docker volume> …
Run Code Online (Sandbox Code Playgroud)

redis docker

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

golang gorm更新关联保存

有没有办法在保存对象时自动删除关联?

这样的事情:

type Parent struct {
    gorm.Model
    Name string
    Children []*Child
}

type Child struct {
    gorm.Model
    Name string
    ParentID uint
}

func myFunc(db *gorm.DB) {
    p := &Parent{Name: "foo", Children:[]*Child{ {Name:"Bar"}, {Name:"Foobar"}}}
    db.Save(&p)

    p.Children = p.Children[1:]
    db.Save(&p)  // both children still exist in the database. i'd like the first child to be deleted here
}
Run Code Online (Sandbox Code Playgroud)

`

我发现了db.Model(&Parent).Association("Children").Clear()的一些技巧,但只是将ParentID值设置为NULL,而不是删除记录.有一个简单的方法吗?

提前谢谢了 :)

go go-gorm

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

如何使用协议缓冲区序列化Go结构并在Dart over Ajax中使用它们

如果我的服务器上的sql数据库中有大量的类型化数据,那么如何使用协议缓冲区将此数据发送到dart客户端?

ajax go protocol-buffers dart

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

golang从sdin扫描一行数字

我正在尝试从 stdin 中读取输入,例如

3 2 1<ENTER>
Run Code Online (Sandbox Code Playgroud)

并将其保存在整数列表中。目前我的代码如下所示:

nums = make([]int, 0)
var i int
for {
    _, err := fmt.Scan(&i)
    if err != nil {
        if err==io.EOF { break }
        log.Fatal(err)
    }
    nums = append(nums, i)
}
Run Code Online (Sandbox Code Playgroud)

目前程序永远不会离开 for 循环。我找不到在文档中检查换行符的简单方法。我该怎么做?

编辑:

由于我知道几乎肯定会有四个数字,因此我尝试了以下操作:

var i0,i1,i2,i3 int
fmt.Scanf("%d %d %d %d\n", &i0, &i1, &i2, &i3)
Run Code Online (Sandbox Code Playgroud)

但这仅扫描了第一个数字,然后退出了程序。我不确定这是否是因为我使用的 z-shell。

编辑:

为了澄清,程序将暂停并要求用户输入由空格分隔并以换行符终止的 n 个数字的列表。这些数字应该存储在一个数组中。

go

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

在 ghdl 中使用包

我正在尝试在 ghdl 中使用我自己的包。有人可以帮助我进行结构和编译吗?目前我的代码如下所示:

在 ./my_package/my_package.vhd 中

library IEEE;
use IEEE.std_logic_1164.all;

package my_package is
  constant my_constant : std_logic_vector(3 downto 0) := "1111";
end my_package;
Run Code Online (Sandbox Code Playgroud)

我将其编译到 my_package 中,如下所示:

myname@myrechner my_package$ ghdl -a --work=my_package my_package.vhd
Run Code Online (Sandbox Code Playgroud)

然后在./uses_my_package/uses_my_package.vhd中

library IEEE;
use IEEE.std_logic_1164.all;

entity uses_my_package is
  port(
    vector_in : in std_logic_vector(3 downto 0);
    vector_out : out std_logic_vector(3 downto 0));
end uses_my_package;

architecture impl of uses_my_package is
begin
  vector_out <= vector_in;
end impl;
Run Code Online (Sandbox Code Playgroud)

并在 ./uses_my_package/testbench.vhd 中:

library IEEE;
use IEEE.std_logic_1164.all;
library work;
use work.my_package.all;

entity testbench is …
Run Code Online (Sandbox Code Playgroud)

vhdl ghdl

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

Scala中的类类型参数.

我写一些应该很直接的东西很难,但我似乎无法正确理解语法.

我有食物的类层次结构:

Food :> Vegetable :> Bamboo
Run Code Online (Sandbox Code Playgroud)

而对于动物:

Animal :> Herbivore :> Panda
Run Code Online (Sandbox Code Playgroud)

而我正试图在动物中定义一种吃法,这样熊猫一般不能吃蔬菜,只能吃竹子.目前,我的代码如下所示:

class Food(val name : String)
class Vegetable(name: String) extends Food(name)
class Bamboo extends Vegetable("bamboo")

class Animal[F <: Food](val name : String) {
    def eat[T <: F](f : T) = println(s"$name eats some yummy ${f.name}")
}
class Herbivore[F <: Vegetable](name :String) extends Animal[Vegetable](name)
class Panda extends Herbivore[Bamboo]("panda")
Run Code Online (Sandbox Code Playgroud)

我的麻烦是,当我制作蔬菜时,熊猫可以吃它:

(new Panda) eat (new Vegetable("potato"))
Run Code Online (Sandbox Code Playgroud)

出了点问题:(

任何帮助将非常欢迎:)

scala generic-variance

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

标签 统计

go ×3

ajax ×1

dart ×1

docker ×1

generic-variance ×1

ghdl ×1

go-gorm ×1

protocol-buffers ×1

redis ×1

scala ×1

vhdl ×1