谈memcache和memcached的区别

立场一:

他们是两个不同版本的php的memcached的客户端
new memcache是pecl扩展库版本
new memcached是libmemcached版本

对于过时的东西,总是会被新东西替代的, 为什么不用新的东西呢?

总结:尽量使用memcached就好。

 

===========================================

立场二:

Memcache与Memcached的区别

Memcache是什么?

Memcache是一个自由和开放源代码、高性能、分配的内存对象缓存系统。用于加速动态web应用程序,减轻数据库负载。

它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Memcached自管理这 些HashTable。

Memcached又是什么?

Memcached是Memcache系统的主程序文件,以守护程序方式运行于一个或多个服务器中,随时接受客 户端的连接操作,使用共享内存存取数据。

那PHP中的Memcache是什么?php中的所讲的memcache是用于连接Memecached的php支持扩展之一(可用phpinfo查看),类似mbstring,eAccelerator。

简单的说

Memcache是总的缓存系统项目名称,容易和PHP中的Memcache混淆。

我们常提到Memcache其实是PHP中的Memcache,即PHP的Memcached扩展支持。

我们常提到Memcached是服务端主程序文件,服务端安装程序。

为了让你的程序飞起来,必须安装memcached服务端程序和PHP的Memcached扩展,所以如果您要使用Memcache来缓存系统,memcache和memcached两样我们都需要安装。


关注公众号,了解更多it技术(it问答网

session跨域,相同服务器,不同域名。session互通调用方案。

同一服务器上有2域名:A、B

A下有c1.php页面。

<?php
	session_start();
	echo session_id();//ei3ddccd7gdjaj5ohq5g7rmvi6
	$_SESSION['cs']=1;
?>

B下有c2.php页面

<?php
	session_id("ei3ddccd7gdjaj5ohq5g7rmvi6");
	session_start();  	
	echo $_SESSION['cs'];
?>

 

提示:ei3ddccd7gdjaj5ohq5g7rmvi6 为A下c1.php的session_id的值。实际应用中可有多种传值方式。

 

tips:

tp5中:跨域,同服务器下,session互通写法,参考如下:

session_id(“ei3ddccd7gdjaj5ohq5g7rmvi6”);
session(“ss”,””);
//echo Session::get(‘username’)

徐多蔚亲测无误!


关注公众号,了解更多it技术(it问答网

tp5获取session id的方式

方法一

先任一设置一个session值,然后获取session id

session(‘g’,”);//执行一次助手函数,session啥都可以,只要执行这个函数即可。
$session_id = session_id();
方法二

在文件\think\Session 中加一个函数

public static function sid(){
if (PHP_SESSION_ACTIVE != session_status()) {
session_start();
}
return session_id();
}

 


关注公众号,了解更多it技术(it问答网

tp5如何调用多个数据库连接?

database.php数据内容里面 最下面追加如下:

//推广产品站数据库设置
	'sqla'=>[
			// 数据库类型
			'type'            => 'mysql',
			// 服务器地址
			'hostname'        => '127.0.0.1',
			// 数据库名
			'database'        => 'cbd2',
			// 用户名
			'username'        => 'root',
			// 密码
			'password'        => 'root',
			// 端口
			'hostport'        => '',
			// 连接dsn
			'dsn'             => '',
			// 数据库连接参数
			'params'          => [],
			// 数据库编码默认采用utf8
			'charset'         => 'utf8',
			// 数据库表前缀
			'prefix'          => 'cbd_',
			// 数据库调试模式
			'debug'           => true,
			// 数据库部署方式:0 集中式(单一服务器),1 分布式(主从服务器)
			'deploy'          => 0,
			// 数据库读写是否分离 主从式有效
			'rw_separate'     => false,
			// 读写分离后 主服务器数量
			'master_num'      => 1,
			// 指定从服务器序号
			'slave_no'        => '',
			// 是否严格检查字段是否存在
			'fields_strict'   => true,
			// 数据集返回类型
			'resultset_type'  => 'array',
			// 自动写入时间戳字段
			'auto_timestamp'  => false,
			// 时间字段取出后的默认时间格式
			'datetime_format' => 'Y-m-d H:i:s',
			// 是否需要进行SQL性能分析
			'sql_explain'     => false,
	
	]

 

调用方式【实例化链接】:

Db::connect(config(‘database.sqla’))->query();

//跨db的表实例化代替DB::name(‘pages’);
Db::connect(config(‘database.sqla’))->name(“pages”);


关注公众号,了解更多it技术(it问答网