redis队列例子详解

测试的时候我用的是Win环境,目前Redis官方是没有Redis环境安装包下载,但是庆幸的是微软有团队在维护Redis WinX64环境的版本,下面是下载网址:

Redis Windows环境下载:
https://github.com/MSOpenTech/redis/releases

下载直接执行redis-server.exe即可

还需要PHP-redis.dll的插件,下载复制到ext目录下,并且在php.ini增加一行:

extension=php_redis.dll

使用的代码非常简单,以下是一个简单的使用类,如果实用在正式环境中,可能要需要进行优化:

class RedisEx{

private $_redis = null;
private $_host = “127.0.0.1”;
private $_prot = 6379;

function __construct(){
self::_connect();
}

public function push($key,$val){
self::_connect();

if($key&&$val){
return $this->_redis->lPush($key,$val);
}
return null;
}

public function pop($key) {
self::_connect();

return $this->_redis->rPop($key);
}

private function _connect(){
if(!$this->_redis){
$this->_redis = new Redis();
$this->_redis->connect($this->_host,$this->_prot);
}
}
}

 

有了处理类,那么我们需要写一个操作代码:

<?php
/**
* http://test.com/1.php?a=POST&key=key1&val=a0000001//加入队列
* http://test.com/1.php?a=GET&key=key1//取出队列
* @var unknown
*/
$action = $_GET[‘a’];

$redisEx = new RedisEx();

if(strtoupper($action) == ‘POST’){
$key = $_GET[‘key’];
$val = $_GET[‘val’];

$res = $redisEx->push($key, $val);

echo $res;

}elseif (strtoupper($action) == ‘GET’){

$key = $_GET[‘key’];

$res = $redisEx->pop($key);

echo $res;
}

echo ‘succ';

 

php-redis中文参考手册

redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)、zset(sorted set –有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。

MySQL快速复制数据库的方法

今天要做网站的数据迁移,想到如果通过sql语句去恢复数据库的话特别麻烦,所以使用以下方法,可以非常简单地实现整个网站的数据库复制:

如果你想把当前网站的数据“blogdb”,想要重新复制一份,并重命名为“blogdb2”,要实现这个操作,非常简单,步骤如下:

  • 首先我们来创建一个新的数据库“blogdb2”;
[root@local ~]# mysql -uroot -p数据库密码
mysql> create database `blogdb2` default character set utf8 collate utf8_general_ci;//创建一个数据库
mysql> exit;//然后退出
  • 然后我们使用命令行,进行整库克隆;

[root@local ~]# mysqldump blogdb -uroot -p数据库密码 –add-drop-table | mysql blogdb2 -uroot -p数据库密码;

就这样简单的完成了

当然,如果是跨服务器复制的话,那么需要加入-h的参数:

[root@local ~]# mysqldump blogdb -uroot -p数据库密码 –add-drop-table | mysql -h znz.lanxinbase.com blogdb2 -uroot -p数据库密码;

这样就成功了,另外如果还要把旧的数据库删除的话,再执行一句sql语句:

mysql> drop database blogdb;

 

 

HTTP错误代码大全

200 (成功) 服务器已成功处理了请求。通常,这表示服务器提供了请求的网页。
201 (已创建) 请求成功并且服务器创建了新的资源。
202 (已接受) 服务器已接受请求,但尚未处理。
203 (非授权信息) 服务器已成功处理了请求,但返回的信息可能来自另一来源。
204 (无内容) 服务器成功处理了请求,但没有返回任何内容。
205 (重置内容) 服务器成功处理了请求,但没有返回任何内容。
206 (部分内容) 服务器成功处理了部分 GET 请求。

android Studio生成的APK重新签名的方法

1. 生成签名证书
使用JDK自带的keytool工具, 运行下面的命令
keytool -genkey -alias lanxinbase -keyalg RSA -validity20000 -keystore lanxinbase.com.jks

/*解释:keytool工具是Java JDK自带的证书工具
-genkey参数表示:要生成一个证书(版权、身份识别的安全证书)
-alias参数表示:证书有别名,-alias androidauto.keystore表示证书别名为:androidauto
-keyalg RSA表示加密类型,RSA表示需要加密,以防止别人盗取
-validity 20000表示有效时间20000天
-keystore lanxinbase.com.jks表示要生成的证书名称为lanxinbase.com.jks
*/
输入完回车后屏幕显示:
输入keystore密码:[密码不回显]
再次输入新密码:[密码不回显]
您的名字与姓氏是什么?
Unknown]:cheers
您的组织单位名称是什么?
Unknown]:cheers
您的组织名称是什么?
Unknown]:cheers
您所在的城市或区域名称是什么?)
Unknown]:shanghai
您所在的州或省份名称是什么?
Unknown]:shanghai
该单位的两字母国家代码是什么
Unknown]:CN
输入< ***.keystore>的主密码
(如果和keystore密码相同,按回车):

执行以上语句后在执行的目录下会生成证书文件 lanxinbase.com.jks

2. 删除之前APK文件的签名

  • 解压apk文件(我用7-ZIP 提取出来)
  • 删除解压出来文件夹中的 META-INF目录:META-INF存放签名后的CERT和MANIFEST文件,用于识别软件的签名及版权。
  • 删除文件夹后重新把解压出来的其它文件夹压缩为zip文件,然后直接把文件后缀改为apk

注意:一定要选中要压缩的文件,然后压缩成.zip 文件,zip文件必须是根目录,即 打开zip文件,就能看见压缩的文件内容,这非常重要。

3. 为APK重新生成签名

  • 将证书复制到与需要重新签名的apk文件相同的目录下
  • 进入该目录下执行以下语句

jarsigner -verbose -keystore lanxinbase.com.jks -signedjar app-release.apk app-dubug.apk lanxinbase

命令解释:
jarsigner是Java的签名工具,JDK自带
-verbose参数表示:显示出签名详细信息
-keystore表示使用当前目录中的android.keystore签名证书文件。
-signedjar app-release.apk app-dubug.apk 表示签名后生成的APK名称为app-release.apk ,未签名的APK Android软件名称为app-dubug.apk
-androidauto.keystore表示签名文件的别名,生成证书的时候有书写

执行以上操作之后在目录下生成了app-release.apk,经过自己签名的APK文件。

14849505152114
 
Copyright © 2008-2021 lanxinbase.com Rights Reserved. | 粤ICP备14086738号-3 |