编程分享
未读React 父子组件、兄弟组件、叔侄应该如何进行通讯,这里描述一下两种方法。
props function
缺点:
操作繁琐,组件关系越复杂代码量越多。
耦合性太强。
消息 订阅与发布
优点:
只需在指定的位置进行订阅消息、发布消息即可。
极大程度上降低耦合性。
1. 通过props function进行通讯原理:
找到父子、兄弟、叔侄组件的共同组件,绑定props function,进行通讯。
1.1. 类式组件用法123456// 父组件 App.jsximport React, { Component } from "react";import List from "./compoments/List";import Search from "./compoments/Search";export default class App extends Component { state = { datas: [] }; dataChange = (data) = ...
redis 官方文档 | redis 中文网
1. Mac 系统安装Reids1.1. 安装Homebrew如果已经安装可以忽略,没有安装的请查看小明之前写好的文章 mac安装homebrew
1.2. 使用Homebrew安装Redis1.2.1. 安装命令1brew install redis
1.2.2. 查看软件安装及配置文件位置Homebrew安装的软件会默认在/usr/local/Cellar/路径下;
redis的配置文件redis.conf存放在/usr/local/etc路径下。
1.2.3. 启动redis服务1.2.3.1. 方法一:brew除了可以帮助我们安装软件以外,还可以帮助我们启动软件
1brew services start redis
1.2.3.2. 方法二:1redis-server /usr/local/etc/redis.conf
1.2.4. 查看redis服务进程我们可以通过下面命令查看redis是否正在运行
1ps axu | grep redis
1.2.5. redis-cli连接redis服务redis默认端口号6379 ...
编程分享
未读WRONGPASS invalid username-password pair or user is disabled.**日志描述:**用户密码错误。
解决方案:
1234# 设置密码为pandaconfig set requirepass panda# 使用密码auth panda
日志输出 OK ,便成功。
(error) MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled. Please check Redis logs for details about the error.日志描述:(错误)misconf redis被配置以保存数据库快照,但misconf redis目前不能在硬盘上持久化。用来修改数据集合的命令不能用,请使用日志的错误详细信息。
原因:这是由于强制停止redis快照,不能持久化引起的,运行info命令查看redi ...
1. RSA 算法介绍
非对称加密,即:PK(PUBLIC_KEY 公钥) 与 SK( SECRET_KEY 密钥) 不是同一个。
PK 加密时,必须用 SK 解密、反之 SK 加密时,必须用 PK 解密。
PK 决定 SK,但是 PK 很难算出 SK(数学原理:两个大质数相乘,积很难因式分解)。
速度慢,适合对少量数据加密。
img
2. Java 使用RSA算法
这里的例子 公钥私钥中使用了外在key,获取/生成公钥私钥时
12345import org.apache.tomcat.util.codec.binary.Base64;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import javax.crypto.Cipher;import java.security.*;import java.security.spec.EncodedKeySpec;import java.security.spec.PKCS8EncodedKeySpec;import java.security.spe ...
编程分享
未读
bash是Linux和Unix下的shell。
本教程关注的是 Bash,也就是 Bourne Again Shell,由于易用和免费,Bash 在日常工作中被广泛使用。同时,Bash 也是大多数Linux 系统默认的 Shell。
在一般情况下,人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash。
#! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。
1. base shell 基础知识1.1. 注释单行注释
“#”命令代表单行注释,在任何一行代码前加上”#”及将这行变为注释
1# 我是注释1
多行注释
多行注释则使用:<
1:<<EOF.................EOF
1.2. 变量变量定义
变量定义不用加任何符号,直接用[变量名]=[变量值]:
1name="jianjian"
命名规则
变量名和变量值与等号之间不能加空格
命名只能使用英文字母,数字和 ...
1. curl 命令参数描述1curl "http://www.baidu.com" # 如果这里的URL指向的是一个文件或者一幅图都可以直接下载到本地curl -i "http://www.baidu.com" # 显示全部信息curl -I "http://www.baidu.com" # 只显示头部信息curl -v "http://www.baidu.com" # 显示get请求全过程解析curl -X GET "http://www.baidu.com" # 指定请求方式
2. curl 命令模拟 http get请求案例:
1curl -v "http://127.0.0.1:80/xcloud/test?version=1&client_version=1.1.0&seq=1001&host=aaa.com"
建议使用双引号来包裹请求,不使用双引号的话需要加入转译符。
1curl -v http://127.0.0.1:80/ ...
1. expect 自动化交互脚本1.1. 介绍expect是一个自动化交互套件,主要应用于执行命令和程序时,系统以交互形式要求输入指定字符串,实现交互通信。
1.2. 安装12sudo apt-get updatesudo apt-get install expect
1.3. 命令介绍Expect中最关键的四个命令是send,expect,spawn,interact。
send:向进程发送字符串,用于模拟用户的输入, 该命令不能自动回车换行,一般要加回车)
expect: expect的一个内部命令,判断上次输出结果里是否包含指定的字符串,如果有则立即返回,否则就等待超时时间后返回,只能捕捉由spawn启动的进程的输出expect
spawn:启动进程,并跟踪后续交互信息
interact:执行完成后保存交互状态,把控制权交给控制台
set timeout 30:设置超时时间为30秒(默认的超时时间是 10 秒,通过 set 命令可以设置会话超时时间, 若不限制超时时间则应设置为-1)
exp_continue: 允许expect继续向下执行指令meout:指定超时时间,过期 ...
12345678910111213141516171819202122232425262728293031323334353637# 查看防火墙状态systemctl status firewalld# 如果不是显示active状态,需要打开防火墙systemctl start firewalld# 查看所有已开放的临时端口(默认为空)firewall-cmd --list-ports# 查看所有永久开放的端口(默认为空)firewall-cmd --list-ports --permanent# 添加临时开放端口(例如:比如我修改ssh远程连接端口是223,则需要开放这个端口)firewall-cmd --add-port=223/tcp# 添加永久开放的端口(例如:223端口)firewall-cmd --add-port=223/tcp --permanent# 关闭临时端口firewall-cmd --remove-port=80/tcp# 关闭永久端口firewll-cmd --remove-port=80/tcp --permanent# 配置结束后需要输入重载命令并重启防 ...
编程分享
未读
Mac和Linux大多数命令相同。这里只指出只属于Mac的命令。
1. 以app的方式打开文本文件123456# -e 使用文本编辑器打开open -e /usr/local/demo.txt# -t 使用默认编辑器打开open -t /usr/local/demo.txt# -a指定应用open -a typora /usr/local/demo.txt
1. 安装sshpass
以下是针对mac系统进行安装。
1234567891011# 安装脚本var=`brew list|grep sshpass`if [ "$var" = "sshpass" ]then echo "sshpass已安装"elseecho "开始安装sshpass"wget https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rbbrew install sshpass.rbrm sshpass.rbecho "sshpass安装成功"fi
2. 使用sshpass -p [passwd] ssh -p [port] root@192.168.X.X
3. 问题记录3.1. sshpass不生效问题:执行ssh时,sshpass不生效。
原因:第一次连接这个服务器需要进行确认,是否可以进行连接。
123The authenticity of h ...