0%

redis连接配置:

 @Bean
RedisMessageListenerContainer container(RedisConnectionFactory connectionFactory) {
    RedisMessageListenerContainer container = new RedisMessageListenerContainer();
    container.setConnectionFactory(connectionFactory);
    return container;
}

消息监听器:

@Component
public class RedisCallBack extends KeyExpirationEventMessageListener {

    public RedisCallBack(RedisMessageListenerContainer listenerContainer) {
        super(listenerContainer);
    }

    @Override
    public void onMessage(Message message, byte[] pattern) {
        System.out.println("过期key:" + message.toString());
    }
}

<div>
    <label class="radio-inline">
        <input type="radio" name="expire" th:value="1" th:checked="true"/>6小时
    </label>
    <label class="radio-inline">
        <input type="radio" name="expire" th:value="2"/>12小时
    </label>
    <label class="radio-inline">
        <input type="radio" name="expire" th:value="3"/>1天
    </label>
    <label class="radio-inline">
        <input type="radio" name="expire" th:value="4"/>3天
    </label>
    <label class="radio-inline">
        <input type="radio" name="expire" th:value="5"/>7天
    </label>
</div>

表单提交时如何获取用户选中了哪个单选框呢?

var expire = $("input[name='expire']:checked").val();

问题

如何在点击进入Modal后将表格数据传入?

方法一

<a class="btn btn-info btn-xs" th:data-port="${port.port}" data-toggle="modal" onclick="showDialog(this)">配置</a>
function showDialog(obj) {
    $('#myModal').modal('show');
    // 获取表格所在行的数据
    var tds = $(obj).parent().parent().find('td');
    // eq(0)获取第1列的数据传入ID为port输入框中
    $("#port").val($(tds.eq(0)).text());
}

方法二

<a class="btn btn-info btn-xs" th:data-port="${port.port}" data-toggle="modal" data-target="#myModal">配置</a>
$(function () { $('#myModal').on('show.bs.modal', function (e) {
        var btn = $(e.relatedTarget);
        // 获取data-port数据
        port = btn.data("port");
        document.getElementById("port").value=port;
    })
    });

安装

# 检查服务器是否安装了 VNC
rpm -qa | grep vnc
# 安装
yum install tigervnc tigervnc-server -y

使用

# 启动一个桌面
# 启动完成默认监听的是5901端口
# vncserver :1 -geometry 1920x1080 -SecurityTypes None
vncserver :1

# 可以再启动一个桌面
# 启动完成默认监听的是5902端口
vncserver :1

# 查看桌面列表
[root@hadoop3 ~]# vncserver -list

TigerVNC server sessions:

X DISPLAY #	PROCESS ID
:1		19243
:2      18722

# 删除一个桌面
vncserver -kill :2

# 为当前用户创建vnc密码
[root@ ~]# vncpasswd
Password:
Verify:

如果开通了防火墙,就需要手动开放相关端口

iptables -I INPUT -p tcp --dport 5901 -j ACCEPT
iptables -I INPUT -p tcp --dport 5902 -j ACCEPT

测试VNC服务

  1. 下载VNC Viewer
  2. 启动VNC Viewer软件
  3. Server输入 192.168.3.11:1
  4. 输入密码

遇到的问题

vnc和anaconda冲突


Could not make bus activated clients aware of XDG_CURRENT_DESKTOP=GNOME envi

解决办法:

  1. 注释掉~/.bashrc中anaconda相关的环境变量设置
  2. 执行source ~/.bashrc
  3. 重启一个xshell连接,启动vnc
  4. 还原~/.bashrc中注释掉的anaconda相关的环境变量
  5. 执行source ~/.bashrc

参考链接

docker部署

# MONGO_INITDB_ROOT_USERNAME 设置root用户名
# MONGO_INITDB_ROOT_PASSWORD 设置root密码
# --auth 需要密码才能访问容器服务
# -v /my/own/datadir:/data/db 设置持久化存储
docker run -d --name mongo -p 27017:27017 -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=123456  mongo --auth

测试

docker exec -it mongo mongo admin
# 测试root用户登录
> db.auth('admin','123456')
1

# 创建一个名为 test,密码为 123456 的用户。
>  db.createUser({ user:'test',pwd:'123456',roles:[ { role:'userAdminAnyDatabase', db: 'admin'},"readWriteAnyDatabase"]});

使用


说明

作为 Docker 的替代品,Podman 的操作和 Docker 高度兼容,在运行方式上, Docker 依赖于守护进程,Podman 不需要守护进程。

CentOS安装

yum -y install podman

简单使用

# 创建一个容器
podman run --rm -p 80:80 --name nginx nginx:alpine

设置容器开机启动

由于Podman没有守护进程,所以自身无法实现开机自启功能,需要配合系统本身实现.

# 为刚刚的容器创建一个服务配置
podman generate systemd nginx > nginx.service
# 修改文件权限
chmod +x nginx.service
# 服务移动到系统目录下
mv nginx.service /usr/lib/systemd/system/
systemctl daemon-reload
# 通过 systemctl 命令来管理这个容器开机自启动
systemctl enable/disable nginx