1. 1
  2. 2
  • 乐观锁和悲观锁的区别

    乐观锁和悲观锁的区别

    RainNight 2021-07-15 MySQL

    172°

    # 乐观锁 > 在关系数据库管理系统里,乐观并发控制(又名”乐观锁”,Optimistic Concurrency Control,缩写”OCC”)是一种并发控制的方法。它假设多用户并发的事务在处理时不会彼此互相影响,各事务能够在不产生锁的情况下处理各自影响的 那部分数据。在提交数据更新之前,每个事务会先检查在该事务读取数据后,有没有其他事务又修改了该数据。如果其他事务有更新的话,正在提交的事务会进行回 滚。乐观事务控制最早是由孔祥重(H.T.Kung)教授提出。 ## 乐观并发控制的阶段 乐观
  • jwt退出登录的解决方案

    jwt退出登录的解决方案

    RainNight 2021-07-15 其他

    145°

    # jwt退出登录 ## 前言 JWT 的原理是,服务器认证以后,生成一个 JSON 对象,发回给用户,就像下面这样。 ``` { "姓名": "张三", "角色": "管理员", "到期时间": "2018年7月1日0点0分" } ``` 以后,用户与服务端通信的时候,都要发回这个 JSON 对象。服务器完全只靠这个对象认定用户身份。为了防止用户篡改数据,服务器在生成这个对象的时候,会加上签名。 服务器就不保存任何 用户凭证数据了,也就是说,服务器变成无状态了,从而比较容易实现扩展。 然而,如
  • PHP方式实现jwt 方式用户身份认证

    PHP方式实现jwt 方式用户身份认证

    RainNight 2021-07-15 PHP

    134°

    # PHP方式实现jwt 方式用户身份认证 ## JwtBaseUtil方法类型 ``` * Date: 2021/7/15 1:47 下午 */ class JwtBaseUtil { //头部 private static $header = [ 'alg'=>'HS256', //生成signature的算法 'typ'=>'JWT' //类型 ]; //使用HMAC生成信息摘要时所使用的密钥 private static $key='KEY'; /** * 获取jwt token * @
  • JSON Web Token 入门教程

    JSON Web Token 入门教程

    RainNight 2021-07-14 其他

    158°

    JSON Web Token(缩写 JWT)是目前最流行的跨域认证解决方案,本文介绍它的原理和用法。 ![file](/static/upload/bigpic/20210714/1626264594186178601.png) ## 一、跨域认证的问题 互联网服务离不开用户认证。一般流程是下面这样。 ``` 1、用户向服务器发送用户名和密码。 2、服务器验证通过后,在当前对话(session)里面保存相关数据,比如用户角色、登录时间等等。 3、服务器向用户返回一个 session_id,写入用
  • Homestead开启php-fpm慢日志教程

    Homestead开启php-fpm慢日志教程

    RainNight 2021-07-13 vagrant

    147°

    ***1 . 找到php-fpm配置文件*** ``` /etc/php/7.1/fpm/pool.d/www.conf ``` ***2 . 开启 slowlog*** ``` slowlog = log/$pool.log.slow ``` ***3 . 开启 requestslowlogtimeout*** ``` request_slowlog_timeout = 5 ``` 当request_slowlog_timeout设为一个具体秒时request_slowlog_timeout
  • rabbitmq常用命令

    rabbitmq常用命令

    RainNight 2021-07-13 rabbitmq

    171°

    查看插件打开情况:rabbitmq-plugins list 启动监控管理器:rabbitmq-plugins enable rabbitmq_management 关闭监控管理器:rabbitmq-plugins disable rabbitmq_management *1、服务器启动与关闭* 启动:service rabbitmq-server start 关闭:service rabbitmq-server stop 重启:service rabbitmq-server restart 启
  • git强制提交本地分支覆盖远程分支

    git强制提交本地分支覆盖远程分支

    RainNight 2021-07-13 git

    171°

    git push origin 分支名 --force eg: cd 代码目录 git push origin master --force 运行结果: Total 0 (delta 0), reused 0 (delta 0) To https://bitbucket.org/jnj_edg/akg-solution.git + f20ec88...d2128f5 master -> master (forced update)
  • Vagrant 中安装 Mysql 如何从外边链接

    Vagrant 中安装 Mysql 如何从外边链接

    RainNight 2021-07-12 vagrant

    175°

    ***在 Vagrant 中安装 Mysql 后从外部链接需要三步*** * 设置私有 ip * 去掉绑定 127.0.0.1 * 对所有 ip 开放 ## 设置私有 ip 修改 **Vagrantfile** 添加 **private_network**,这样外部可以通过该 ip 链接 ``` config.vm.network "private_network", ip: "192.168.33.10" ``` 这步需要放在第一步来完成,随后重新加载配置 ``` $ vagrant relo
  • 解决 Mac OS 10.14 环境下 gem install ERROR

    解决 Mac OS 10.14 环境下 gem install ERROR

    RainNight 2021-07-11 flutter

    194°

    # 环境 ---- * Mac OS Mojave 10.14 * ruby 2.3.7p456 (2018-03-28 revision 63024) # 报错信息 --- ``` $ sudo gem install sass Building native extensions. This could take a while... ERROR: Error installing sass: ERROR: Failed to build gem native extension. curr
  • Automatically assigning platform `ios` with version `9.0` on target `Runner`解决

    Automatically assigning platform `ios` with version `9.0` on target `Runner`解决

    RainNight 2021-07-11 flutter

    211°

    Automatically assigning platform ios with version 9.0 on target Runner because no platform was specified. Please specify a platform for this target in your Podfile 在mac上使用引用了第三方库,发现报错,解决步骤如下: 解决办法: ## platform version错误,解决方法是修改项目里的ios/Podfile文件: ```
Collect from 雨夜的博客 雨夜的博客