windows下安装redis 以及phpredis的扩展 (windows redis php&php7)

http://blog.csdn.net/zhaoag525/article/details/52700203

一、工具准备

1. Redis for windows 下载 https://github.com/MSOpenTech/redis

2. PHP扩展下载 http://pecl.php.net/package-stats.php (redis 和 igbinary)

PHP 7 扩展下载 http://windows.php.net/downloads/pecl/snaps/redis/20160319/

注: 下载扩展是要注意看自己的php版本及x86orx64 和 compiler  编译版本

二、redis安装

1.redis安装

将下载后的redis文件解压到安装目录

2.redis启动

1).windows+R 然后 cmd 进入到D:\program files\redis(根据自己redis路径自行调整)

2).输入 redis-server.exe 点击回车,自己注意看一下redis目录下文件情况,不同版本的启动方式有点小差异。出现下图标识执行成功。成功后别关闭当前窗口,操作redis期间都要保证此窗口打开,关闭此窗口表示 关闭reids,重新打开一个cmd

3).cmd 进入到D:\program files\redis(根据自己redis路径自行调整) 然后输入 redis-cli.exe 点击回车。现在我们就可以做一些测试如下图,标识redis安装 启动成功。

注:两个cmd窗口同时打开,之前开启redis的窗口不能关掉

三、 php扩展

1.把下载到的php_redis.dll和php_igbinary.dll扩展文件 拷贝到php\ext中

2. 打开php.ini;加入以下代码

  1. #php for redis
  2. extension=php_igbinary.dll
  3. extension=php_redis.dll

3.重启服务,phpinfo中有redis项表示成功

四.demo

  1. <span style=“font-size:18px;”>$redis = new redis();
  2. $redis->connect(“127.0.0.1”,“6379”);  //php客户端设置的ip及端口  
  3. //存储一个 值  
  4. $redis->set(“type”,12);
  5. echo $redis->get(“type”);
  6. //存储多个值  
  7. $array = array(‘first_key’=>‘first_val’,
  8.     ‘second_key’=>‘second_val’,
  9.     ‘third_key’=>‘third_val’);
  10. $array_get = array(‘first_key’,‘second_key’,‘third_key’);
  11. $redis->mset($array);
  12. var_dump($redis->mget($array_get)); </span>

附:Redis类的一些属性及方法


a)连接redis server

  • connect :连接server
  • pconnect :长连接
  • auth :权限验证
  • select :选择DB
  • close : 关闭连接
  • setOption : 设置 client 选项
  • getOption : 获取client选项
  • ping : ping redis server
  • echo : 输出字符串

注意,如果频繁操作redis,不停地connect 和close会很耗性能的,这个时候,建议用pconnect 建立个长连接

b)字符串读写函数

  • append  :在值的后面追加值
  • decr :递减一个key的值
  • incr :递增一个key的值
  • get :获取一个值
  • set :设置一个值
  • getSet :设置值,并返回老值
  • mGet :批量获取值
  • mSet :批量设置值
  • strlen :获取值长度

注意:如果能用批量操作尽量用批量,减少频繁连接redis数据库性能

c)hash读写函数

  • hDel :删除一个多个域
  • hExists :判断一个hash域是否存在
  • hGet :获取hash域的值
  • hGetAll :获取所有域值
  • hIncrBy :自增长一个hash int域的值
  • hKeys :获取hash 所有域
  • hLen :获取域个数
  • hMGet :批量获取域的值
  • hMSet :批量设置域的值
  • hSet :设置域的值
  • hVals:得到所有域的值

d)list读写函数

  • lInsert:插入元素
  • lLen:list长度
  • lPop:移除并获取第一个颜色
  • lPush:插入一个元素
  • lRem:移除元素
  • lSet:设置元素值

e)set

  • sAdd:增加一个或多个成员
  • sIsMember:是否包含
  • sMembers:得到成员
  • sMove:移动成员
  • sPop:移除成员
  • sRandMember:得到随机成员
  • sRem:删除

f)sorted set

  • zAdd:增加一个或多个
  • zCard:成员个数
  • zIncrBy:递增成员score
  • zRange:返回索引范围内的成员
  • zRangeByScore :返回score范围内的成员
  • zScore:获取成员score
  • zRem:移除一个或多个成员

win7x64下的redis安装与使用

先引用百度百科的一段话吧,具体可以到百科查看吧。

Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal赞助。

官方下载地址:http://redis.io/download,不过官方没有64位的Windows下的可执行程序,目前有个开源的托管在github上, 地址:https://github.com/ServiceStack/redis-windows 点击这个地方,下载文件并解压到自己的电脑目录下。

本文使用版本:redis64-3.0.501.zip

解压后目录如下:

 

文件名 简要
redis-benchmark.exe 基准测试
redis-check-aof.exe aof
redischeck-dump.exe dump
redis-cli.exe 客户端
redis-server.exe 服务器
redis.windows.conf 配置文件

 

然后编辑redis.windows.conf文件,我看网上有的教程说编辑里边maxheap <bytes> ,但是3.x版本以后,修改的是 maxmemory <bytes>, bytes是字节,请自行换算,我这里改成maxmemory 1024000000

其实这个地方可以不用设置,他描述上已经说了,redis会自动设置的。

设置redis的密码:找到# requirepass foobared 改为 requirepass 我的密码 ,本机测试可不设置。

 

保存后打开redis的解压目录,shift+鼠标左键找到菜单上:在此处打开命令行窗口 或 自行运行cmd命令到此目录

命令如下:

redis-server.exe redis.windows.conf --maxmemory 200M

其中–maxmemory 200M是选填的,如果你配置文件redis.windows.conf中配置,这个就可以省去,如果没配置,这个可以加也可以不加,你开心就好。

当出现此界面的时候,说明启动成功,监听端口6379,然后让我们测试一下效果吧

重新打开一个DOS界面,效果如下:

如果你设置了redis的密码,则需要在set之前执行auth 密码 命令,否则会提示(error) NOAUTH Authentication required.

最后说一下将redis加到Windows服务中。首先还是要启动redis服务器端,然后在运行redis客户端,然后通过Windows的service-install命令,输入

redis-server --service-install redis.windows.conf --loglevel verbose

以后就可以使用win的服务启动,而不需要每次都要打开一个DOS界面启动了。

推荐redis技术阅读:http://www.cnblogs.com/hoojo/p/4466024.html

推荐redis桌面客户端:http://www.oschina.net/p/redis-studio

phpStudy2014之Redis-3.0.1配置

在配置redis之前,刚配置好memcache的环境,不过相对于memcache​​,在study下,redis的扩展是需要自己安装的,而就是这个扩展弄了我一下时间,主要是自己年轻啊~~

​首先,当然是要安装Redis的环境,这一部分和安装memcache本机环境是一致的,其实就是安装软件。我的运行环境是windows7 64位的,故从网上找了一个已经编译好了的3.0版本

​根据它里面的安装命令,进行安装,就提示成功了。Linux下的安装,网上教程有很多,就不举例了,而windows下的话,还有一个更简便的,有一个msi的傻瓜安装程序,不过这个程序由于网站被和谐(你懂得,国内的网),下载不了,所以我选择了上面的方法。

资源下载地址:  http://down.51cto.com/data/2065644​

安装好,启动服务就好了,上面有个警告,暂时不清楚这个redis.conf文件的实际作用是干什么的,应该就是一些服务器配置吧。不过这就已经正常的启动了,切记,这个窗口是不能关闭的,因为并没有把redis配置到系统服务中去,关闭了的话,服务就终止了

其次,安装完后,就要去安装php的redis扩展了,这里我选择的是5.4n的版本​

​nts是非线程安全的,ts是线程安全的,我选择的是nts的,ts的话需要另外配置php5ts.dll的,这里我偷个懒,没有去做。

​php的扩展安装,第一,把压缩包中两个文件,放入ext文件中,然后在php.ini中添加

;redis的配置

extension=php_igbinary.dll

extension=php_redis.dll

放在最后即可,详细的可以网上去搜的。

最后,重启服务,就完成了redis的php扩展配置,并且可以使用redis提供的服务了。​

13 款开源的全文搜索引擎

本文转载自xum2008的博客,主要介绍13款现有的开源搜索引擎,你可以将它们用在你的项目中以实现检索功能。

1.  Lucene

Lucene的开发语言是Java,也是Java家族中最为出名的一个开源搜索引擎,在Java世界中已经是标准的全文检索程序,它提供了完整的查询引擎和索引引擎,没有中文分词引擎,需要自己去实现,因此用Lucene去做一个搜素引擎需要自己去架构.另外它不支持实时搜索,但linkedin和twitter有分别对Lucene改进的实时搜素. 其中Lucene有一个C++移植版本叫CLucene,CLucene因为使用C++编写,所以理论上要比lucene快.

官方主页:http://lucene.apache.org/

CLucene官方主页:http://sourceforge.net/projects/clucene/

2.  Sphinx

Sphinx是一个用C++语言写的开源搜索引擎,也是现在比较主流的搜索引擎之一,在建立索引的事件方面比Lucene快50%,但是索引文件比Lucene要大一倍,因此Sphinx在索引的建立方面是空间换取事件的策略,在检索速度上,和lucene相差不大,但检索精准度方面Lucene要优于Sphinx,另外在加入中文分词引擎难度方面,Lucene要优于Sphinx.其中Sphinx支持实时搜索,使用起来比较简单方便.

官方主页:http://sphinxsearch.com/about/sphinx/

3.  Xapian

Xapian是一个用C++编写的全文检索程序,它的api和检索原理和lucene在很多方面都很相似,算是填补了lucene在C++中的一个空缺.

官方主页:http://xapian.org/

4.  Nutch

Nutch是一个用java实现的开源的web搜索引擎,包括爬虫crawler,索引引擎,查询引擎. 其中Nutch是基于Lucene的,Lucene为Nutch提供了文本索引和搜索的API.

对于应该使用Lucene还是使用Nutch,应该是如果你不需要抓取数据的话,应该使用Lucene,最常见的应用是:你有数据源,需要为这些数据提供一个搜索页面,在这种情况下,最好的方式是直接从数据库中取出数据,并用Lucene API建立索引.

官方主页:http://nutch.apache.org/

5.  DataparkSearch

DataparkSearch是一个用C语言实现的开源的搜索引擎. 其中网页排序是采用神经网络模型.  其中支持HTTP,HTTPS,FTP,NNTP等下载网页.包括索引引擎,检索引擎和中文分词引擎(这个也是唯一的一个开源的搜索引擎里有中文分词引擎).能个性化定制搜索结果,拥有完整的日志记录.

官方主页:http://www.dataparksearch.org/

6.  Zettair

Zettair是根据Justin Zobel的研究成果为基础的全文检索实验系统.它是用C语言实现的. 其中Justin Zobel在全文检索领域很有名气,是业界第一个系统提出倒排序索引差分压缩算法的人,倒排列表的压缩大大提高了检索和加载的性能,同时空间膨胀率也缩小到相当优秀的水平. 由于Zettair是源于学术界,代码是由RMIT University的搜索引擎组织写的,因此它的代码简洁精炼,算法高效,是学习倒排索引经典算法的非常好的实例. 其中支持linux,windows,mac os等系统.

官方主页:http://www.seg.rmit.edu.au/zettair/about.html

7.  Indri

Indri是一个用C语言和C++语言写的全文检索引擎系统,是由University of Massachusetts和Carnegie Mellon University合作推出的一个开源项目. 特点是跨平台,API接口支持Java,PHP,C++.

官方主页:http://www.lemurproject.org/indri/

8.  Terrier

Terrier是由School of Computing Science,Universityof Glasgow用java开发的一个全文检索系统.

官方主页:http://terrier.org/

9.  Galago

Galago是一个用java语言写的关于文本搜索的工具集. 其中包括索引引擎和查询引擎,还包括一个叫TupleFlow的分布式计算框架(和google的MapReduce很像).这个检索系统支持很多Indri查询语言.

官方主页:http://www.galagosearch.org/

10.  Zebra

Zebra是一个用C语言实现的检索程序,特点是对大数据的支持,支持EMAIL,XML,MARC等格式的数据.

官方主页:https://www.indexdata.com/zebra

11.  Solr

Solr是一个用java开发的独立的企业级搜索应用服务器,它提供了类似于Web-service的API接口,它是基于Lucene的全文检索服务器,也算是Lucene的一个变种,很多一线互联网公司都在使用Solr,也算是一种成熟的解决方案.

官方主页:http://lucene.apache.org/solr/

12.  Elasticsearch

Elasticsearch是一个采用java语言开发的,基于Lucene构造的开源,分布式的搜索引擎. 设计用于云计算中,能够达到实时搜索,稳定可靠. Elasticsearch的数据模型是JSON.

官方主页:http://www.elasticsearch.org/

13.  Whoosh

Whoosh是一个用纯python写的开源搜索引擎.

官方主页:https://bitbucket.org/mchaput/whoosh/wiki/Home

数据库无法启动解决办法 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace fangwei/yjcode_moneyrecord uses space

2017-03-29 10:12:37 1436 [ERROR] InnoDB: Attempted to open a previously opened tablespace. Previous tablespace fangwei/yjcode_moneyrecord uses space ID: 38 at filepath: .\fangwei\yjcode_moneyrecord.ibd. Cannot open tablespace nbw1/t_cardcon514log which uses space ID: 38 at filepath: .\nbw1\t_cardcon514log.ibd
InnoDB: Error: could not open single-table tablespace file .\nbw1\t_cardcon514log.ibd
InnoDB: We do not continue the crash recovery, because the table may become
InnoDB: corrupt if we cannot apply the log records in the InnoDB log to it.
InnoDB: To fix the problem and start mysqld:
InnoDB: 1) If there is a permission problem in the file and mysqld cannot
InnoDB: open the file, you should modify the permissions.
InnoDB: 2) If the table is not needed, or you can restore it from a backup,
InnoDB: then you can remove the .ibd file, and InnoDB will do a normal
InnoDB: crash recovery and ignore that table.
InnoDB: 3) If the file system or the disk is broken, and you cannot remove
InnoDB: the .ibd file, you can set innodb_force_recovery > 0 in my.cnf
InnoDB: and force InnoDB to continue crash recovery here.

 

在D:\wamp\mysql\bin下面的my.ini中添加

innodb_force_recovery = 1

thinkphp 实现多数据库 连接 解决办法

一、全局配置定义

return array(
    'DB_TYPE' => 'mysql',
    'DB_HOST' => '127.0.0.1',
    'DB_NAME' => 'thinkcmf',
    'DB_USER' => 'root',
    'DB_PWD' => 'root',
    'DB_PORT' => '3306',
    'DB_PREFIX' => 'cmf_',
    //密钥
    "AUTHCODE" => '2oF6v4m67BdQnfwMSf',
    //cookies
    "COOKIE_PREFIX" => '03a9uH_',
);

如果我们已经在配置文件中配置了额外的数据库连接信息,例如:

return array(
    //数据库1
    'DB_TYPE' => 'mysql',
    'DB_HOST' => '127.0.0.1',
    'DB_NAME' => 'thinkcmf',
    'DB_USER' => 'root',
    'DB_PWD' => 'root',
    'DB_PORT' => '3306',
    'DB_PREFIX' => 'cmf_',
    //密钥
    "AUTHCODE" => '2oF6v4m67BdQnfwMSf',
    //cookies
    "COOKIE_PREFIX" => '03a9uH_',
    //数据库2
    'DB_CONFIG2' => array(
        'db_type'  => 'mysql',
        'db_user'  => 'root',
        'db_pwd'   => 'root',
        'db_host'  => '127.0.0.1',
        'db_port'  => '3306',
        'db_name'  => 'repast'
       ),
    );

二、实例化定义

$User = M('User','cmf_','DB_CONFIG2');

html 实现 消息咨询提示框 微信提示框 微信咨询按钮

需要引用jquery    图标


&lt;style&gt;
#ding {width:100%; max-width:640px; max-height:100px; position:fixed; top:0; z-index:999999; background-color:#000; background:transparent; color:#FFF; background-color:rgba(0,0,0,0.70);}
.wxin { width:10%; height:100%; overflow:hidden; padding-top:8px; padding-bottom:8px; padding-left:8px; padding-right:8px; float:left; border-right-width: 1px; border-right-style: solid; border-right-color: #c7c5c5; }
.wxin img { width:100%; max-height:74px;}
.wenz { width:60%; height:100%; overflow:hidden; float:left; margin-left:8px; padding-top:2%;}
.wenz { color:#FFF; font-size:14px;}
.huifu { width:18%; height:100%; overflow:hidden; float:left; background-color:#3daf35; border-radius:6px; text-align:center; padding-top:4px; padding-bottom:4px; margin-top:15px;}
.huifu span { font-size:14px; color:#FFF;}
&lt;/style&gt;
&lt;div id="ding" style="display:none;"&gt;
&lt;div class="wxin"&gt;&lt;img src="/images/wx1.png"&gt;&lt;/div&gt;
&lt;div class="wenz"&gt;&lt;p&gt;真爱在线医生&lt;br&gt;您好,请问有什么可以帮您?&lt;/p&gt;&lt;/div&gt;
&lt;div class="huifu"&gt;&lt;a href="javascript:void(0)" onClick="openZoosUrl();LR_HideInvite();return false;"&gt;&lt;span&gt;回复&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;script type="text/javascript"&gt;
$(function () {
//绑定滚动条事件
//绑定滚动条事件
$(window).bind("scroll", function () {
var sTop = $(window).scrollTop();
var sTop = parseInt(sTop);
if (sTop &gt;= 10) {
if (!$("#ding").is(":visible")) {
try {
$("#ding").slideDown();
} catch (e) {
$("#ding").show();
}
}
}
else {
if ($("#ding").is(":visible")) {
try {
$("#ding").slideUp();
} catch (e) {
$("#ding").hide();
}
}
}
});
})
&lt;/script&gt;

linux如何查看所有的用户和组信息?

  1. cat /etc/passwd
  2. cat /etc/passwd查看所有的用户信息,详情如下图

  3. 【步骤二】cat /etc/passwd|grep 用户名

    cat /etc/passwd|grep 用户名,用于查找某个用户,如下图

  4. 【步骤三】cat /etc/group

    cat /etc/group查看所有组信息,如下图

  5. 4

    【步骤四】cat /etc/group|grep 组名

    cat /etc/group|grep 组名,用于查找某个用户组,如下图

  6. 5

    【步骤五】用户和组常用命令

    groups 查看当前登录用户的组内成员

    groups test 查看test用户所在的组,以及组内成员

    whoami 查看当前登录用户名

原创 linux 添加ftp 用户 设置密码 分配猪目录权限

1、环境:ftp为vsftp。被限制用户名为goonls。被限制路径为/home/wwwroot/www.goonls.com
2、建用户:在root用户下:
useradd -d /home/wwwroot/www.goonls.com goonls
//增加用户test,并制定test用户的主目录为/home/wwwroot/www.goonls.com
3、设置密码 或随机生成密码(选择其中一种方式就可以)
passwd goonls   //为goonls 设置密码
mkpasswd         //为goonls 随机生成密码
http://goonls.com/?p=761