• 1 未解决
    0
    swoole2010期 第二次课课堂笔记2 redis list 应用案例

    //链接Redis

    $redis = new Redis();

    $redis->connect("127.0.0.1", 6379);

     //基础操作

    if (0) {

    //进入队列 从右边进入

    $redis->rpush("books", "php", "java", "python");

    //进入队列 从左边进入

    // $redis->lpush("books", "php", "java", "python");

    //获取长度

    // $redis->llen("books");

    //左边出

    // $redis->lpop("books");

    //右边出

    // $redis->rpop("books");

    //指定10秒内返回,假如10秒没有可返回的数据,就返回nil

    $redis->blpop("books", 10);

    //在某一个元素前/后添加一个元素

    $redis->linsert("books", "before", "java", "c++");

    //通过索引获取一个元素

    dd($redis->lindex("books", 2), 'lindex');

    //通过索引获取list区间内多个元素

    dd($redis->lrange("books", 0, -1), 'lrange');

    //保留下标索引 1-3 的元素,其他去掉

    dd($redis->ltrim("books", 1, 3), 'ltrim');

    dd($redis->lrange("books", 0, 2), 'lrange');

    }

    /*

     *  消息队列

     *  //进入队列 从右边进入 右边出

     * */

    if(1){

        //专门接收数据存入list 中

       $redis->rpush("books", "php", "java", "python");


        //专门获取数据处理

    //    $text = $redis->blpop("books", 10);

        $text = $redis->lpop("books" );

        $len = $redis->lLen("books");

        dd($len,'length');

        if($text){

            dd($text,"to do some thing");

        }

        //to do some thing

    }

    /*

     * list 应用场景

     * page 分页查询

     * */

    if(0){

        //根据一定的排序获取主键ID

        //存入list中  1,2,3,4,5,6,7,8,9

        $ids_arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];

        foreach ($ids_arr as $id){

            $redis->rpush("article_page_ids", $id);

        }

        //每页三个

        $size = 3;

        //第一页: 0,2

        //第二页: 3,5

        //第三页: 6,8

        //分页计算排序 ($page-1) * size ,($page) * size -1

        $ids = [];

        $len = $redis->lLen("article_page_ids");

        dd($len,'length');

        for ( $page = 1;$page<= ceil($len/$size);$page++ ){

            //返回分页数据的ID集合

            $ids = $redis->lrange("article_page_ids", ($page-1) * $size ,($page) * $size -1);

            // 根据主键查询数据 自定义字符串/数字来实现排序

            $sql[$page] = "select * from aritcle where id in(".implode(',',$ids).") order by field(id,".implode(',',$ids).")";

        }

        dd($sql,'sql');

    }


  • 1 未解决
    0
    swoole2010期 第二次课课堂笔记1 redis string 应用案例

    //链接Redis

    $redis = new Redis();

    $redis->connect("127.0.0.1", 6379);

    //基础操作

    if(0){   

         //清空库

        $redis->flushAll(); // 删除所有数据库

        $redis->flushDB(); //删除当前数据库

        $redis->set("name", "kongling");  //保存 K-V 键值对字符串   

        dd($redis->get("name"), "get key:name");  //获取 key:name 的value值  

        // $redis->Mget('name');   //批量读取keys    

        $redis->type("name");  //判断key 的类型 

        $redis->set("name", "sixstar");    //修改 value 值 /直接覆盖

        //修改/替换 value 部分 值

        $redis->setRange("name", 3, "fire"); //把 sixstar 修改为 sixfire

        dd($redis->get("name"), '把 sixstar 修改为 sixfire');

      

        $redis->getrange("name", 0, 5);   //截取字符串长度


        //判断key 是否存在,如果存在不修改,如果不存在新增  赋值判断原值是否存在,存在不赋值,返回0;不存在才赋值,返回1;命令setnx

        $redis->setnx("name", "hello world");

        //设置key 生存时间

        $redis->set("zoon", "dog");

        $redis->expire("zoon", 20); //单位 秒

        $redis->setex("botany", 50, "flower"); //单位 秒

        $redis->psetex("botany", 50000, "fruits"); //单位 毫秒

        //获取key 的生存时间

        $redis->ttl("zoon"); //单位 秒

        $redis->pttl("botany"); //单位 毫秒

        //mset 同时设置多个kv键值对

        $arr = [

            "dog_name" => "小花",

            "cat_name" => "小毛",

            "fish_name" => "小飞",

        ];

        $redis->mset($arr);

        $redis->msetnx($arr); // msetnx 为原子性,判断如果有一个存在,全部都不设置


        //给 key 尾部追加字符串

        $redis->append("name", "is veally good");


        // 获取原有value值的同时写入新的value值

        $redis->getset("name", "veally goods");


        // redis数据加法计算命令incr,incrby,数据加法运算,incr为+1内置运算,incrby为+n自设n运算

        $redis->incr("count");

        $redis->incrby("num", 10);


        //redis数据减法计算命令decr,decrby, 数据减法运算,decr为-1内置运算,decrby为减n自设n运算

        // $redis->set("count", 10);

        dd($redis->decr("count"), 'decr("count")');

        $redis->decrby("num", 5);


        //获取string长度的命令strlen

        $redis->strlen("name");


        //删除key

        $redis->del("name");

       

    }

    /*

     * string 应用场景

     * session 分布式集群服务器 登录同步

     * 配置服务器的 PHP 的session 存储到 Redis中去

     * 具体操作 :略

     * */


    /*

     * string 应用场景

     * Inc incrBy decr decrBy 计数器

     * */

    if(0){

        $redis->incr("count"); //每次自动加一

        $redis->incrBy("num",3);//每次自动加 自定义数值


        $redis->decr("count"); //每次自动减一

        $redis->decrBy("num",3);//每次自动减 自定义数值

    }

    /*

     * 请求拦截

     * 短信发送

     * 5分钟内最多发送5次

     * */

    if(1){

    //    $redis->flushAll();

        $phone = "130****1418";

        $key = "phone:".$phone;

        $redis->exists($key) ? $redis->incr($key) : $redis->setex($key,30,1)  ;

       /* if(!$redis->exists($key)  ){

            $redis->setex($key,30,1);

            dd($redis->get($key),"count ");

        }else{

            dd("count incr ");

            $redis->incr($key);

        }*/

        $count = $redis->get($key);

        if($count>5){

            exit("对不起,您发送次数太过频繁,请稍后再发送");

        }

        //to do send Phone Msg

        dd($count,"to do send Phone Msg");

    }



  • 1 未解决
    0
    win10 Docker Desktop + laradocker 响应慢

    attachments-2020-12-zxXD3M0d5fcb1019cec71.png
    接口心跳测试,没有数据库操作,响应时间出奇的慢(3s+),是哪里没配置好吗?

  • 1 未解决
    0
    HTML input中button按钮如何根据条件来设置能否点击

    前端小白,小小功能就找了半天不会写。

    1.首先看页面:

    attachments-2020-02-nLNjgXiV5e58e1e3b5235.png

    这是一个循环列表,每条记录相应的操作。

    2.需求:根据每条记录中一个字段来判断是否可以点击。比如status字段,等于1不可点击,0可以点击。加载页面的时候就要完成这种状态识别。

    3.代码:

    attachments-2020-02-2A7DtKPi5e58e1e9e00a4.png

    就是针对提交按钮来进行操作。字段为 ${Ledger_new.status}

    谢谢大家了


  • 1 未解决
    0
    multipartfile接受文件不能解密,怎么使用file接受文件?

    需求:由于文件都是加密文件,在前端传递上传文件之后,使用multipartFile接受的都无法解密,需要使用File类型的文件才能进行解密,目前代码如下:


    前端代码

    uploadExcel: function () {

        var zipFormData = new FormData();

        zipFormData.append('file', this.upath);

        axios.post(

          '/upload/data',

          zipFormData

      ).then((res) => {

    }

    后端代码

    public void uploadData(@RequestParam("file") MultipartFile file, HttpServletRequest request, HttpServletResponse response) {

        //解密程序:

    }

    怎么改写代码,让后端接口能接收file类型的文件?前端和后端都应该怎么调整?

  • 1 未解决
    0
    JVM的符号引用的问题

    今天碰到一个问题,想请教一下类加载过程中的验证和链接过程,如果碰到符号引用有循环依赖关系,是怎么处理的,会跟spring一样加个缓存容器处理么,如下图所示

    attachments-2020-02-A2L7gACo5e4ce20bac9c3.pngattachments-2020-02-L9IaRfrC5e4ce214a08c4.png

     

    Testone在加载的时候验证符号引用,如果Testtwo还未加载,该怎么处理,另外就是JVM加载类的时候是否会多线程,多线程会导致可见性问题,这个时候JVM是怎么处理的

  • 1 未解决
    0
    docker环境变量修改

    docker run -e …设置的环境变量,容器启动后怎么修改

  • 1 未解决
    0
    ConcurrentHashMap底层原理分析疑惑

    问题描述

    如Mic老师所讲,其中,如果链表的长度大于8,并且node数组的长度大于64的时候,如果再添加数据到当前链表中,会把当前链表转化为红黑树。


    当出现扩容时,如果链表的长度小于8,把红黑树转化为链表

    这里我没有明白为什么会这样,这里出现扩容后,原有的链表长度会减少吗?怎么才能出现红黑树转化为链表的情况?

  • 1 未解决
    0
    如何搭建Git服务器

    目前在学习搭建git环境,需求是要这样的,在云端有个git项目,先将这个项目克隆到本地的103服务器上,这样云端和103服务器可以同步代码了,然后需要将103服务器的git项目克隆到PC01,PC02,PC03上,实现PC与103服务器的代码同步。问下这样的环境怎么样搭建呢?

    需要用到哪些工具,以下画了一个简图。

  • 1 未解决
    0
    Maven打包war的依赖打不进去

    Maven项目A是war,项目B是jar,项目A依赖项目B
    然后B依赖了C.jar

    怎么在打包A.war的时候,把C.jar也放进去?

    除了:把C.jar 写入A.pom里

    还有其他方法吗?

    实在是不想把一个jar的依赖在两个pom文件中声明

  • 1 未解决
    0
    ThreadLocal内存泄漏问题

    attachments-2020-02-cy2iRZmh5e43d54ea30d5.png
    Tom老师,您好,想问一下为什么线程池里面不调用remove()方法为什么会导致内存泄漏,谢谢!!!

  • 1 未解决
    0
    交易流水优化查询

    【求助】不改变数据库结构,用什么方法可以快速查询一个用户的交易流水!包括通过程序控制思路也可以 

    attachments-2020-02-ubwuSEky5e43d4dac33e2.png

    attachments-2020-02-h0puVXbD5e43d4e4d392f.png

  • 1 未解决
    0
    Jenkins 构建工程java.lang.NoClassDefFoundError: org/apache/maven/shared/filtering/MavenFilteringExceptio

    attachments-2020-02-X3av9z0R5e426a853b71d.png### 问题描述

    attachments-2020-02-FLkAxhJS5e426a8ee9531.png


    问题出现的平台版本及自己尝试过哪些方法

    已经尝试修改jdk,manven 版本

    目前环境是 Centos 7 , jdk 1.7 ,maven 3.2.5


    相关代码

    // 请把代码文本粘贴到下方(请勿用图片代替代码)

    [WARNING] Error injecting: org.apache.maven.plugin.resources.ResourcesMojo

    java.lang.NoClassDefFoundError: org/apache/maven/shared/filtering/MavenFilteringException

    at java.lang.Class.getDeclaredConstructors0 (Native Method)

    at java.lang.Class.privateGetDeclaredConstructors (Class.java:2493)



    Caused by: java.lang.ClassNotFoundException: org.apache.maven.shared.filtering.MavenFilteringException

    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:50)


    你期待的结果是什么?实际看到的错误信息又是什么?

    Jenkins 能够发布工程成功

  • 1 未解决
    0
    springcloud注册中心如何使用集群的consul呢?

    最近,各个微服务的注册中心由eureka集群换成consul集群,目前consul集群已搭建好,但是不知道如何连接,自己查过官网,官网也是只有一个host的连接方式 。

    如:连接eureka集群

    attachments-2020-02-cYhJVU245e3fcfc8cb976.png

    consul单机:

    attachments-2020-02-7lJ1fU3S5e3fcfd0bc4e5.png


    请大佬指教,springcloud 如何连接consul集群?

  • 1 未解决
    0
    项目要炸,<input />在线等大佬解围

    最近项目不正常了,通过jvisualvm 查看jvm状态,发现项目中一个线程ContainerBackgroundProcessor[StandardEngine[Catalina]]分配的字节超高。如下:

    按线程分配:

    attachments-2020-01-jhpXXZMK5e159330144bb.png


    按类分配:

    attachments-2020-01-qRRgRhGK5e1593376de09.png


    网上查了很久终于找到篇解释这个线程的帖子

    https://blog.csdn.net/chw0629/article/details/100073935


    attachments-2020-01-IqvTupTh5e159348abc4e.png



    但是奈何技术太菜还是一头雾水,有没有大神指一条出路?