首页 » 2019年4月

使用openssh 作为server,然后一台计算机就可以使用ssh连接这个server

1.server端

sudo pacman -S openssh

2.修改配置

sudo vim /etc/ssh/sshd_config

3.去掉注释并修改如下内容

AllowUsers user1 user2
AllowGroups group1 group2
PermitRootLogin no
Port 22 #笔者只设置了这一项

4.设置开机启动

sudo systemctl start sshd.socket
sudo systemctl enable sshd.socket

5.使用命令查看当前server的ip

ip address

6.client 端连接

ssh user@ip

archlinux 或者manjaro 这个因为源有问题,解决方案是替换可用的源

[1] 修改/etc/pacman.conf ,添加中科大的源,并且放到前面的位置

#USTC
[archlinuxcn]
     
SigLevel = Never
Server = https://mirrors.ustc.edu.cn/archlinuxcn/$arch

[2] 更新源

pacman -Syy

[3]也有可能是你的镜像源没有更新,上面两部不用做,直接运行下面一行,然后重新安装即可。

sudo pacman -Sy

查找一个字符串中最长的字符串,这个思路就是从左向右找,用i向右找,j标识开始统计的字符。max记录最大长度.如:
Input: "pwwkew"
Output: 3
Explanation: The answer is "wke", with the length of 3.
Note that the answer must be a substring, "pwke" is a subsequence and not a substring.

[1]算法如下,复杂度O(n)


import java.util.HashMap;
import java.util.Map;
class Solution {

    public int lengthOfLongestSubstring(String s) {
        int max = 0;
        Map<Character,Integer> map= new HashMap<Character,Integer>();
        for(int i =0,j=0;i < s.length();i++){
            Character cha = s.charAt(i);
            if(map.containsKey(cha)){
                j = Math.max(j,map.get(cha)+1);
            }
            map.put(cha,i);
            max = Math.max(max,i-j + 1);
        }
        return max;
    }
}

1.并发写,
答:由于redis是单线程的,可以在内存中合并写操作来优化,而且省去了io和序列化操作
2.redis的持久化方式

  • RDB
  • AOF

3.redis 提供了主从复制功能,即一份数据有多份副本
4.redis 中的字符串并非C中的字符串实现,而是用SDS(simple dynamic string)的抽象类型,键值对的key和value都是一个SDS类型。SDS还用来缓冲

  • SDS初始大小小于1M,则分配N+1+N的空间,如果大于1M,则分配30MB,目的是防止字符串修改溢出和重新分配空间
  • 惰性回收,如果SDS字符串缩短了,那么free属性会标识剩余的空间,而不是直接收回。
  • 二进制安全,C语言中,字符串必须符合某种编码,如ASCII。比如遇到0会认为是字符串结尾,但是SDS没有这个假设和限制,村进去的二进制是什么样,读取的时候就是什么样。

5.当redis列表的值字符串比较大时,redis会采用链表作为数据结构
6.redis map的实现

  • rehash ---扩张---大于等于使用×2的数字。数字为2的n次方
  • reshash --缩减----小于等于使用的数字,数字为2的n次方
  • 渐进式rehash,每次增删改查都会出发rehash

7.实际上外面包了一层对象,来决定最终的类型。当我们创建一个键值对的时候,我们会创建两个

1.JPA包括一下:

  • API
  • MAPPING ----xml 和注解两种方式
  • JPQL ----查询语言

2.mybatis和hibernate的区别

  • hibernate符合jpa规范,传统公司更喜欢,mybatis互联网公司更喜欢,因为mybatis不会带来i性能问题,hibernate不会优化则有行能问题
  • hibernate 更倾向于 以对象为中心,mybatis以数据为中心(面向对象),把sql映射给方法(面向关系)
  • hibernate 使用存储过程不方便,mybatis不存在这个问题。

3.为什么ElasticSearch要在7.X版本去掉type?
4.sql mode 的使用
5.kafka的路由,除了topic