面包屑思维模型实战模型错题集结构手册流程手册自我检测专题模块

  • 微信小程序前端
    微信小程序前端易错点收集
    查看
  • css/less/sass样式控制
    在开发过程中的一些样式控制bug规避
    查看
  • tp5开发小程序
    tp5开发小程序时错误积累
    查看
  • PHP错题集
    PHP在实际开发过程中遇到的问题
    查看
  • MySql数据库
    使用MySql在实际开发中遇到的错误总结
    查看
  • TP5错题集
    积累tp5框架在实际开发过程中遇到的问题
    查看
  • uni-app爬坑
    主要用于uni-app项目中遇到的一些问题
    查看
  • Vue.js易错收集
    vue.js项目常见错误收集整理
    查看
  • uni-app开发微信小程序
    uni-app开发微信小程序的一些爬坑积累
    查看
  • Linux
    Linux在部署、开发、运维时遇见的错误积累
    查看
  • 安全设计
    常见安全设计
    查看
  • Redis
    项目中使用redis的相关错误积累
    查看
  • 前端特效
    前端特效相关错题集
    查看
more

最新博文

  • TP5.1中配置使用Redis(两种方案)

    Redis

    1.修改TP5.1中的Redis配置

    第一种方法:打开TP5.1框架根目录config文件夹中的cache.php,在return中添加以下字段:

    'redis'=>[
            'Type'=>'Redis',
            'host'=>'127.0.0.1',
            'port'=>'6379',
            'password'=>'123456',
            'expire'=>0,
        ]

    添加后cache.php应该是这样:



    第二种方法:打开TP5.1框架根目录thinkphp/library/think/cache/driver/Redis.php

    直接修改options中字段即可



    2.在控制器中使用Redis

    同样有两种使用方法并对应之前的两种配置,这里一起讲

    首先需要在想使用Redis的控制器中引入Redis缓存或Cache门面(对应之前两种配置方法)

    use think\facade\Cache;
    use think\cache\driver\Redis;

    然后分别用两种配置方案添加或查询Key-Value键值对,代码如下(这里使用了两种方法,随便用哪种都可以,但是记得使用方法要和之前的配置方法相对应):

    public function redisTest()
        {
            $redis = new Redis();
            $redis->set('Test_Key1','Test_Value1');
            $resultByThinkCacheDriverRedis = $redis->get('Test_Key1');
            echo $resultByThinkCacheDriverRedis;
            echo '<br>';
            Cache::store('redis')->set('Test_Key2','Test_Value2');
            $resultByConfigCache = Cache::store('redis')->get('Test_Key2');
            echo $resultByConfigCache;
        }

    然后在服务器运行此方法即可看到使用的效果:



    原文链接:https://blog.csdn.net/qq_38280150/article/details/99302631





    风口下的猪2020-07-20Redis

    阅读更多
  • Windows配置Redis环境

    Redis

    Redis是典型的NoSql(非关系型数据库)之一,他是一个高性能的Key-Value数据库。它支持数据的持久化,官方测试读的速度是110000次/s,写的速度是81000次/s ,由于Redis提供了键过期的功能,所以现在被广泛用于缓存,合理运用缓存不仅可以提升站点访问速度还可以大幅降低数据库压力。

    下面我会从0开始讲解如何在你的Windows下配置好Redis环境

    以及Redis在TP5.1框架中如何使用


    目录:

    一、Windows下Reids环境配置:
           1.下载并开启PHP扩展:Redis Igbniary
           2.下载完整版Redis服务
           3.修改默认配置、注册Redis服务、开启Redis服务、使用基本命令操作Redis
    二、TP5.1中配置使用Redis(两种方案)
           1.修改TP5.1中的Redis配置
           2.在控制器中使用Redis

    一. Windows下Reids环境配置:

    1.下载并开启PHP扩展:Redis和Igbniary

    Redis扩展下载链接:https://windows.php.net/downloads/pecl/releases/redis/

    Igbniary扩展下载链接:https://windows.php.net/downloads/pecl/releases/igbinary/

    点击进入下载链接选择下面的最新版,然后可以看到一个下载目录,这里要下载和自己服务器php配置符合的文件,如果不清楚自己服务器配置的话可以用phpinfo();函数查看一下自己的phpinfo信息:



    Redis扩展和Igbniary扩展版本选择

    这里只需要注意三个信息,我分别用红框注明了

    Compiler决定了你要下载扩展的VC版本,我这里是VC15。

    Architecture决定了你要下载扩展是多少位的,我这里是X86(32位)

    Thread Safety决定你要下载扩展是否开启线程安全,我这里是enabled,对应的是开启(Ts),如果是未开启则是(Nts)。



    知道了自己PHP具体信息后我们便可以知道自己要下载的是哪个扩展了,比如我需要下载的是VC15+X86+Ts版本的:




    将两个压缩包下载后解压出来,在对应文件夹找到这四个文件:


    然后将这四个文件放入服务器php目录中的ext文件夹中


    将这四个文件放入文件夹后我们需要打开服务器php目录中的配置文件php.ini添加并开启下列相应扩展:

    ;php_redis
    extension=php_igbinary.dll
    extension=php_redis.dll


    添加并开启这两个扩展后需要重启一下服务器,重启服务器后我们再次使用phpinfo();函数来查看信息,如果在列表中可以找到Redis和Igbinary列表即说明我们已经成功为服务器上的PHP添加了Redis和Igbinary扩展:




    2.下载完整版Redis服务

    点我进入GITHUB详情页下载 

    git下载Redis-x64-3.2.100网速可能为0下载不了

    推荐下载地址:

    csdn下载地址:https://download.csdn.net/download/yinbaicheng/10634697

    百度网盘地址:链接: https://pan.baidu.com/s/1d67EqCH8JqDCMMOdKGQ8Vw 提取码: q5ea

    3.修改默认配置、注册Redis服务、开启Redis服务、使用基本命令操作Redis

    成功下载后将压缩包解压至任意非中文目录(最好是方便你CMD访问的目录),由于安装开启Redis服务时需要相应配置文件,所以不推荐配置环境变量。我这里将压缩包内容解压至桌面名为redis的文件夹中:



    Redis默认端口为6379,且默认没有密码,设置密码修改密码网上有很多方法,比如命令行修改等,但是涉及到是否永久修改、是否需要重启Redis服务等比较麻烦。

    所以这里直接讲一个永久性的万金油方法:打开压缩包解压位置目录(以下以我的redis文件夹代替)中的redis.winsows.conf配置文件,定位到里面的79行(因人而异)的port 6379


    这里便是Redis服务的默认端口,如需修改默认端口直接修改port后的数字即可。
    如果想要设置密码或修改密码则需定位到443行(因人而异)的# requirepass foobared:


    我这里想给我的Redis设置一个‘123456’的密码则需将 # requirepass foobared 改为 requirepass 123456

    注意想要修改默认端口或密码等信息最好在安装服务前就修改好。修改好配置信息后就可以使用Redis了。



    Redis有几种开启方式,但是直接运行redis-server.exe或者在CMD目录中运行的话都是一次性的,如果关闭相应CMD窗口则服务失效,所以这里同样只讲一个方法:永久注册后台Redis服务

    首先打开CMD窗口进入到redis文件夹目录(请进入你自己的目录,这里以我的目录为例)

    然后使用下列命令为我们的Windows注册Redis服务,此命令中的redis.windows.conf为我们之前修改的配置文件:

    redis-server --service-install redis.windows.conf --loglevel verbose
    如果之后想卸载此服务可以使用以下命令行:
    redis-server --service-uninstall
    CMD成功运行效果如下:



    至此我们就在Windows环境下安装了Redis服务,之后我们就可以开启并连接至Redis测试一下效果,注意所有命令都要进入到redis目录(请进入你自己的目录,这里以我的目录为例)使用

    1.开启Redis服务需要使用此命令:

    redis-server --service-start

    2.关闭Redis服务则需要使用此命令:

    redis-server --service-stop

    3.连接Redis使用此命令(127.0.0.1为主机地址,6379为连接端口):

    redis-cli.exe -h 127.0.0.1 -p 6379

    4.使用密码登录使用此命令:

    auth 123456

    5.新建一个Key-Value键值对使用此命令:

    set key value

    6.查找Key对应的Value使用此命令:

    get key


    下面我用CMD完整演示一下此过程(由于已经成功安装服务,所以我配置了环境变量直接操作了,如果你没有配置,请手动进入你的redis安装目录再使用命令行)配置环境变量也很简单,只需将系统变量中的path新建一个字段为你的redis安装目录即可,比如我安装在C:\Users\10443\Desktop\redis,所以环境变量添加此路径即可:




    至此就成功的配置好了Windos+PHP环境下的Redis服务并可以连接操作了


    原文链接:https://blog.csdn.net/qq_38280150/article/details/99302631


    风口下的猪2020-07-20Redis

    阅读更多
  • 软件alpha、beta、rc、stable各个版本的区别

    软件开发

    很多软件在正式发布前都会发布一些预览版或者测试版,一般都叫“beta版”或者 “rc版”,特别是开源软件,甚至有“alpha版”,下面来解释一下各个版本的意思。

    • alpha版

            内部测试版。α是希腊字母的第一个,表示最早的版本,一般用户不要下载这个版本,这个版本包含很多BUG,功能也不全,主要是给开发人员和 测试人员测试和找BUG用的。

     

    • beta版

            公开测试版。β是希腊字母的第二个,顾名思义,这个版本比alpha版发布得晚一些,主要是给“部落”用户和忠实用户测试用的,该版本任然存 在很多BUG,但是相对alpha版要稳定一些。这个阶段版本的软件还会不断增加新功能。如果你是发烧友,可以下载这个版本。

    • rc版

            Release Candidate(候选版本),该版本又较beta版更进一步了,该版本功能不再增加,和最终发布版功能一样。这个版本有点像最终发行版之前的一个类似 预览版,这个的发布就标明离最终发行版不远了。作为普通用户,如果你很急着用这个软件的话,也可以下载这个版本。

    • stable版

          稳定版。在开源软件中,都有stable版,这个就是开源软件的最终发行版,用户可以放心大胆的用了。



    风口下的猪2020-07-20软件开发

    阅读更多
  • js与php互通使用rsa签名验签的解决方案

    安全设计

    js与php互通使用rsa签名验签的解决方法是

    前端js使用jsrsasign进行派发签名,后端php使用openssl_扩展进行验签。


    为使实际项目中前后签名验签顺利通过,需要保证以下几个一致性:

    (1)设置签名算法时,预定义常量Signature Algorithms一致

    前端KJUR.crypto.Signature()设置签名算法时的alg参数

    var sig = new jsrsasign.KJUR.crypto.Signature({"alg": "SHA256withRSA"});

    后端openssl_verify()验签时使用的alg参数

    $verify=openssl_verify($data, $sign, $public_key,OPENSSL_ALGO_SHA256);

    两者alg参数一定要对应一致


    KJUR.crypto.Signature的alg参数,参考:https://kjur.github.io/jsrsasign/api/symbols/KJUR.crypto.Signature.html

    openssl_verify的alg参数,参考:https://www.php.net/manual/zh/openssl.signature-algos.php


    (2)针对不同密钥对格式PCK#8与PCK#1,前端密钥转码的语法要对应一致

    当密钥对格式为PCK#8时

    const rsa =jsrsasign.KEYUTIL.getKey($privateKey);

    当密钥对格式为PCK#1时

    const rsa =new jsrsasign.RSAKey();
    rsa.readPrivateKeyFromPEMString($privateKey);


    (3)前后端都需base64加解码

    前端派发签名时,要用hextob64加密

    var sign = jsrsasign.hextob64(sig.sign());
    return sign;

    后端验签时,openssl_verify()中sign参数必须要先用base64_decode先行解码

    $verify=openssl_verify($data,base64_decode($sign),$pu_key,OPENSSL_ALGO_SHA256);


    另外记住一句话:

    公钥加密私钥解密,私钥签名公钥验签


    风口下的猪2020-07-20安全设计

    阅读更多
  • RSA 加解密---openssl_pkey_get_private($private_key)返回为false的问题

    安全设计

    风口下的猪2020-07-17安全设计

    阅读更多
  • 如何正确对用户密码进行加密?

    安全设计

    https://www.infoq.cn/article/how-to-encrypt-the-user-password-correctly

    正确的保存用户密码应该是

    每个用户的每一个密码都要使用独一无二的盐值。用户每次创建帐号或更改密码时,密码应采用一个新的随机盐值。永远不要重复使用某个盐值。这个盐值也应该足够长,以使有足够多的盐值能用于哈希加密。一个经验规则是,盐值至少要跟哈希函数的输出一样长。该盐应和密码哈希一起存储在用户帐号表中。

    存储密码的步骤:

    1. 使用 CSPRNG 生成足够长的随机盐值。
    2. 将盐值混入密码,并使用标准的密码哈希函数进行加密,如 Argon2、 bcrypt 、 scrypt 或 PBKDF2 。
    3. 将盐值和对应的哈希值一起存入用户数据库。

    校验密码的步骤:

    1. 从数据库检索出用户的盐值和对应的哈希值。
    2. 将盐值混入用户输入的密码,并且使用通用的哈希函数进行加密。
    3. 比较上一步的结果,是否和数据库存储的哈希值相同。如果它们相同,则表明密码是正确的;否则,该密码错误。





    风口下的猪2020-07-15安全设计

    阅读更多
  • 如果是MySQL引起的CPU消耗过大,你会如何优化?

    web性能优化

    风口下的猪2020-07-15web性能优化

    阅读更多
  • 创建多少个线程合适?

    web性能优化

    风口下的猪2020-07-15web性能优化

    阅读更多
  • Vue报错

    vue

    风口下的猪2020-06-17vue

    阅读更多
  • 携带token要先设置后端header的Access-Control-Allow-Headers

    PHP

    风口下的猪2020-06-06PHP

    阅读更多
  • uniapp 页面栈管理

    uni-app

    uniapp页面栈管理,主要实现效果是不使页面间出现冗余堆积,且设备返回键执行不突兀。

    主要是两个点:a.返回上一页数据的重新渲染;b.刷新当前页

    一.返回上一页数据的重新渲染

    (1)onShow和onLoad的分工:每个页面的url参数是在onLoad获取,但页面渲染所需的后端或者本地数据,一定要在onShow中得到;

    (2)采用uni.navigateBack

    uni.navigateBack({
    delta: 1
    });


    二.本页的重新刷新

    (1)本页的重新刷新,主要通过重定向本页即可

    uni.redirectTo({
    url:curUrl
    });

    这里可以对获取本页完整url(route+参数)进行一个封装

    Test.prototype.getUrl=function(){
    let pages = getCurrentPages();
    let curPage = pages[pages.length - 1];
    let curParam = curPage.options || curPage.$route.query;
    let Url=''+curPage.route+'?';
    let Urlarray =Url.split("/");
    let last=Urlarray.length-1;
    let currentUrl=Urlarray[last];
    for (var val in curParam) {
    currentUrl=currentUrl+''+val+'='+curParam[val]+'&'
    }
    currentUrl = currentUrl.substr(0,currentUrl.length-1);
    return currentUrl;
    }


    风口下的猪2020-05-22uni-app

    阅读更多
  • 软件开发
  • 素质要求
  • 计算机基础
  • 架构
  • 安全
  • 性能
  • 运维
  • 尾页
  • 数据库
  • 开发终端
  • 语言基础
  • 项目管理
  • 产品设计
  • 系统
  • 工作规范
  • 计算机网络
  • 前端技术栈
  • 数据结构
  • 计算机组成原理
  • 后端技术栈
  • 性能优化
  • 安全设计
  • 常见模块
  • 计算机操作系统
  • 服务器
  • python
  • MySQL
  • thinkphp
  • PHP
  • Java
  • JavaScript
  • Windows
  • Linux
  • 特效
  • indexedDB
  • vue
  • 淘宝联盟
  • Ionic
  • Angular
  • 微信小程序
  • 支付宝小程序
  • uni-app
  • css/sass/less
  • 支付
  • socket
  • 爬虫
  • web性能优化
  • 消息推送
  • CVM
  • sqlite
  • Redis
  • 前端基础
  • 基础
  • element
  • Nginx
  • yii2
  • /ponder/index/catelist/catelist/cateid/10.html

    我的名片

    网名:风口下的猪

    职业:软件开发、广告传媒

    现居:重庆渝北

    Email:kamoneyte@qq.com

    标签云

    站点信息

    • 文章统计:528篇
    • 移动端访问:扫码进入SQ3R