Ecshop:ecshop nginx下实现url静态化

1、在nginx/conf/tuwen.com.conf中添加:include ecshop.conf;location / { rewrite “^/index.html“ /index.php last; rewrite “^/category$“ /index.php last; rewrite “^/feed-c([0-9]+).xml$“ /fee
阅读本文

淘宝后台添加颜色尺码动态sku

废话不多说,直接上代码,用了vue,可直接copy运行 <!DOCTYPE html> <html lang=“en“> <head> <meta charset=“UTF-8“> <title>Title</title> <script src=“https://select2.github.io/vendor/js/jquery.min.js“></scrip
阅读本文

记一次企业级爬虫系统升级改造(六):基于Redis实现免费的IP代理池

前言:  首先表示抱歉,春节后一直较忙,未及时更新该系列文章。  近期,由于监控的站源越来越多,就偶有站源做了反爬机制,造成我们的SupportYun系统小爬虫服务时常被封IP,不能进行数据采集。  这时候,前面有园友提到的IP代理就该上场表演了。 IP代理池设计:  博主查阅与调研了多方资料,最终决定先通过爬取网络上各大IP代理网站免费代理的方式,来建立自己的IP代理池。  最终爬取了五家较为
阅读本文

Redis的发布订阅

序言发布订阅在设计模式中也可以说是观察者模式,针对这个模式是处理对象间一对多的依赖关系的,当一个对象发生变化,其它依赖他的对象都要得到通知并更新。然而它也有自己的缺点,就是当主题发生一系列的变化时,观察者都要做批量的更新,如果这样的更新成本很高,那么解决方法就是根据种类需求通知,而不能盲目的通知所有的观察者。那针对这个缺点,一般的情况下,你没有需求谁订阅一个跟自己无关的消息推送呢?这也正好说明推送
阅读本文

Java并发问题--乐观锁与悲观锁以及乐观锁的一种实现方式-CAS

首先介绍一些乐观锁与悲观锁:  悲观锁:总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁。再比如Java里面的同步原语synchronized关键字的实现也是悲观锁。  乐观锁:顾名思义,就是很乐观,每次去拿数据的时候
阅读本文

【Spring】使用Spring和AMQP发送接收消息(中)

上篇讲了RabbitMQ连接工厂的作用是用来创建RabbitMQ的连接,本篇就来讲讲RabbitMQ的发送消息。通过RabbitMQ发送消息最简单的方式就是将connectionFactory Bean注入到服务层类中,并使用它创建Connection,使用这个Connection来创建Channel,再使用这个Channel发布消息到Exchange中。当然Spring AMQP提供了Rabbi
阅读本文

RabbitMQ消息的交换

目录1.简介在前面的例子中,每个消息都只对应一个消费者,即使有多个消费者在线,也只会有一个消费者接收并处理一条消息,这是消息中间件的一种常用方式。另外一种方式,生产者生产一条消息,广播给一个或多个队列,所有订阅了这个队列的消费者,都可以消费这条消息,这就是消息订阅。官方教程列举了这样一个场景,生产者发出一条记录日志的消息,消费者1接收到后写日志到硬盘,消费者2接收到后打印日志到屏幕。工作中还有很多
阅读本文

Java里的CompareAndSet(CAS)

Atomic 从JDK5开始, java.util.concurrent包里提供了很多面向并发编程的类. 使用这些类在多核CPU的机器上会有比较好的性能.主要原因是这些类里面大多使用(失败-重试方式的)乐观锁而不是synchronized方式的悲观锁.今天有时间跟踪了一下AtomicInteger的incrementAndGet的实现.本人对并发编程也不是特别了解, 在这里就是做个笔记, 方便以后
阅读本文

总结一下关于mysql 5.6 新特性

一直断断续续的看一些mysql特性,今天总结一下,以下是列表,网址 http://mariadb.org/ (也是类似的特性), http://mysql.com/最近在看关于mysql新特性的一些书一. server参数默认值设置的变化 ParameterOld DefaultNew DefaultVersion back_log 50 Autosized using max_connect
阅读本文

Exchange Server 2007的即将生命周期,您的计划是?

多数人做微软技术,Exchange Server 几乎所有 Microsoft 产品,都具有产品支持生命周期,原厂提供的新增功能、 错误修复、安全修补程序等。产品生命周期通常持续时间 10 年,超过期限此生命周期的末尾称为产品淘汰。 微软官方也正式发布 Exchange Server 2007 在今年 4月11日 ,将达到其支持生命周期结束,对我们客户来说,可能有是一件和头疼事情,又需要花多时间规
阅读本文

uva10763ForeignExchange

uva10763ForeignExchangehttp://lvyou.baidu.com/plan/0067371e6b0a97bf40c11228?5R375=03-17/2017/tXz孔愈锨;http://lvyou.baidu.com/plan/a0a7ca26b6075754f03b7512?1xbb7j=v5x7t16_2017.3/tjfhttp://lvyou.baidu.com
阅读本文

python-rabbitmq

简单producer:import pika connection = pika.BlockingConnection( pika.ConnectionParameters(‘localhost‘) ) channel = connection.channel() #declar channel.queue_decla
阅读本文

Cryptography I 学习笔记 --- 基于陷门置换的公钥加密

最原始的RSA(textbook RSA):已知公钥(n,e),我们想传递一个密钥k,那么计算ke mod n得到密文c。但是这种RSA是不安全的,其破解方式如下:比方说k长度为64bit,那么这个k大约有20%的可能是由两个不超过34bit大小的k1*k2组成的那么ke mod n = (k1 * k2) e mod n = (k1e * k2e) mod n,也就是说 c / k1e = k2
阅读本文

RabbitMQ消息队列(五):Routing 消息路由[转]

上篇文章中,我们构建了一个简单的日志系统。接下来,我们将丰富它:能够使用不同的severity(严重程度)来监听不同等级的log。比如我们希望只有error的log才保存到磁盘上。 1. Bindings绑定     上篇文章中我们是这么做的绑定: channel.QueueBind(queueName, EXCHANGE_NAME, ROUTING_KEY);//const stri
阅读本文

RabbitMQ消息队列(二):Hello, World[转]

2. Sending 第一个program send.cs:发送Hello world 到queue。正如我们在上篇文章提到的,你程序的第9行就是建立连接,第12行就是创建channel,第14行创建名字为hello的queue。 1 using System; 2 using RabbitMQ.Client; 3 using System.Text; 4 5 class S
阅读本文

Introduction_to_Algorithms_7

第七章 快速排序 伪代码: PARTITION(A, p, r) 1 x = A[r] 2 i = p - 1 3 for j = p to r - 1 4 if A[j] <= x 5 i = i+1 6 exchange A[i] with A[j] 7 exchange A[i+1] with A[r] 8 return i+1 QUI
阅读本文

Introduction_to_algorithms_6

第六章 堆排序 堆排序(大根堆)&&优先队列 问题描述:   堆排序:堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,
阅读本文

c#单元测试:使用Moq框架Mock对象

在.net中有几种mock框架可供选择,比如NMock,PhinoMocks,FakeItEasy和Moq。尽管Moq相对较新,但是它非常易用。不需要像传统的Record/Replay。并且使用Moq在VS中可以得到智能提示。学习成本也不高。这篇文章我们介绍下如何使用Moq来mock吧。假定我们要做一个计算器提供基本的算术运算和不同货币的转换。ICaculator接口定义如下:using Syst
阅读本文

Python 第五阶段 学习记录之----rabbmit

消息服务器rabbmit  RabbitMQ 消息队列     python里有两个Q, threading queue、不同线程间数据交互 进程Queue: 不同进程间交互这个说法是错误的。 这个是用于父进程与子进程间交互、或者同属于同一父进程下多个子进程进行交互。 两个python程序的进程间是无法通信的。各个独立进程间通信: 那两个不同的程序要通信、两台机器要通信?  消息队列: 可以跟各种
阅读本文

多态置换原则初始化基类对象

1 #include “TStudent.h“ 2 3 enum EStudentStatus //大学生系别不同,用枚举分类 4 { 5 eFullTime, ePartTime, eExchange 6 }; 7 8 //每学期,每名大学生允许注册的课程数目 9 const short MAX_COURSES_FOR_STUDENT = 5;//短整型常量 10
阅读本文