鍍金池/ 問答/ PHP問答
拽很帥 回答

nginx在linux一般是用epoll, 它使用的是注冊回調(diào)函數(shù),數(shù)據(jù)準(zhǔn)備好自動調(diào)用。這個(gè)過程其實(shí)阻塞的。master分配某個(gè)連接給worker進(jìn)程,worker同一時(shí)間的阻塞的,只能處理一個(gè)請求。。還有nginx是多進(jìn)程模型的

伴謊 回答

其實(shí)這大部分是一個(gè)操作系統(tǒng)原理的問題。操作系統(tǒng)在讀取文件時(shí)會把文件內(nèi)容放到空閑內(nèi)存中,這樣下次再有程序嘗試讀取同樣的文件內(nèi)容的時(shí)候,就可以直接從內(nèi)存中給而不用讀磁盤,從而大幅度提高讀取速度。這個(gè)緩存就是文件系統(tǒng)緩存。
其實(shí)很容易理解:這些內(nèi)存如果沒有人用,空著也是浪費(fèi),為什么不緩存一點(diǎn)東西在里面呢?不管緩存什么,只要命中一次就賺到一次。至于怎么怎么賺更多,那就要看你怎么選擇在有限的內(nèi)存空間中緩存的什么內(nèi)容,怎么能讓緩存的內(nèi)容被更多地命中。這部分內(nèi)容跟問題無關(guān),不細(xì)說了,有興趣可以看看操作系統(tǒng)原理。
回到你的問題,當(dāng)你重啟了MongoDB實(shí)例時(shí),MongoDB占用的內(nèi)存當(dāng)然已經(jīng)都釋放掉了。但是無論是數(shù)據(jù)還是索引,其實(shí)都還緩存在文件系統(tǒng)緩存中,因?yàn)樗鼈兌紒碜杂跀?shù)據(jù)文件和索引文件(前提是沒有別人要使用這些內(nèi)存)。索引的使用是按需加載,這點(diǎn)基本上從邏輯推理就可以猜出來:假設(shè)你的10GB的索引,難道第一次讀取的時(shí)候就要等10GB索引加載到內(nèi)存中?假如索引容量比內(nèi)存要大呢?所以一次性加載全部索引顯然是不合理的。即使是一個(gè)索引,也是按需部分加載而不是全部。所以你需要用到的只是這1GB中的很小一部分。記住索引的時(shí)間復(fù)雜度是log2(n),要從1億數(shù)據(jù)中找出需要的一條,最壞的情況下只需要查詢27次比較,當(dāng)然是瞬間就出來了。

ci的 session 不在 $_SESSION 中,找它的文檔看 session 這一節(jié)。

貓小柒 回答

安全組規(guī)則呢

黑與白 回答

mongodb是動態(tài)scheme,無所謂改表結(jié)構(gòu)。
es是全文檢索,也不需要改表結(jié)構(gòu)

何蘇葉 回答

1.[b.com]在發(fā)現(xiàn)未登錄時(shí)跳轉(zhuǎn)至[a.com]進(jìn)行登錄
2.[a.com]在登錄完成后將登錄authcookie與用戶信息記錄到服務(wù)器(session_id或者redis都可以)
3.同時(shí)[a.com]創(chuàng)建一個(gè)令牌token關(guān)聯(lián)上一步的authcookie,并帶回[b.com]backUrl
4.[b.com]拿到[a.com]發(fā)回來的令牌去調(diào)用[a.com]的接口查詢是否令牌有效并且可以查到用戶信息,有的話則拿回?cái)?shù)據(jù)并做后續(xù)操作

以上是單點(diǎn)登錄的基本流程,PS:單點(diǎn)登錄與前后端分離沒有關(guān)系。

掛念你 回答

可以增量統(tǒng)計(jì)
除了第一次全量統(tǒng)計(jì),以后只統(tǒng)計(jì)新增的(根據(jù)數(shù)據(jù)添加時(shí)間)和新更新的(根據(jù)數(shù)據(jù)更新時(shí)間)。

刪除操作只做邏輯刪除,每張表都應(yīng)該有添加時(shí)間和更新時(shí)間并且更新時(shí)間最好設(shè)置為自動更新。
比如:

CREATE TABLE `table_name` (
  `xx` varchar(50) NOT NULL DEFAULT '' COMMENT 'xx',
  `del_flag` tinyint(1) NOT NULL DEFAULT '0' COMMENT '標(biāo)志,0為有效,-1為無效',
  `update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新時(shí)間',
  `add_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加時(shí)間'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='xxxxx';
逗婦惱 回答

redis 安裝成功后會得到 redis-server 和 redis-cli ;
redis-server 就是用來存儲數(shù)據(jù)的;
redis-cli 則是給人在命令行下用來連接 redis-server 然后進(jìn)行增刪改查的操作的客戶端;
php-redis.dll 則是給 PHP 用來連接 redis-server 然后進(jìn)行增刪改查的操作的擴(kuò)展;

這樣理解不?

赱丅呿 回答

因?yàn)槟闶褂玫氖?code>./public/****和./app/****,它是根據(jù)你的url中的http://localhost/index.php/index/index/index拼接上/public/****或者/app/****`,可以改成/public/****/app/****

久不遇 回答

1 <?php
2 $newword = "
3 直達(dá):通往
4 小:大
5 ";
6 $str_txt = "這是一條直達(dá)美好殿堂的小道。";
7 $pairs = preg_split("/[:".PHP_EOL."]/", trim($newword));
8 $i = 0;
9 while($i < count($pairs)) {
10 list($ori[], $tar[]) = [$pairs[$i++], $pairs[$i++]];
11 }
12 var_dump(str_replace($ori, $tar, $str_txt));
輸出:
string(42) "這是一條通往美好殿堂的大道。"
str_replace是支持批量替換的。

悶油瓶 回答

在package.json中找到d3,然后把后面的版本號改成你需要的,然后npm install

先審題:

題主是想把相關(guān)的數(shù)據(jù)庫配置信息通過表單存儲在一個(gè)數(shù)據(jù)庫中,然后通過讀取數(shù)據(jù)庫中數(shù)據(jù)配置信息,然后去實(shí)現(xiàn)訪問不同數(shù)據(jù)庫的功能,而不是把所有的數(shù)據(jù)庫配置信息預(yù)先配置在 config/database.php 中。

如果沒有理解錯(cuò)的話,再來解題:

Laravel 數(shù)據(jù)庫信息存儲到數(shù)據(jù)庫中

數(shù)據(jù)庫配置信息存儲在數(shù)據(jù)庫中,只要按照 Laravel 的數(shù)據(jù)庫配置要求去存儲即可,這個(gè)隨意題主怎么存儲,在 config/database.php 中已經(jīng)有了各類數(shù)據(jù)庫配置的示例。

多數(shù)據(jù)庫連接

在官方文檔中有說明用法 $users = DB::connection('foo')->select(...); 看官方文檔即可。

把數(shù)據(jù)庫中存儲的數(shù)據(jù)配置信息設(shè)置到 Laravel 的 config 中去

  1. 首先編寫自己的 ServiceProvider
  2. ServiceProvider boot 方法中添加如下代碼。
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //1. get your database config from database.
        //Your code.
        
        
        //2. set database info to laravel database config.
        $this->app['config']->set('database.connections.testing', [
            'driver' => 'mysql',
            'database' => ...
        ]);

    }        

沒有親自去實(shí)戰(zhàn),提供一種思路,請題主自行實(shí)驗(yàn)。

款爺 回答

和csrf非常類似

這個(gè)方法 可以不用查詢數(shù)據(jù)庫。
在路由地方增加一個(gè)中間件,把需要驗(yàn)證的路由全部走這個(gè)中間件。
每次用戶登錄的時(shí)候生成一個(gè)比較長的hash碼(保證每個(gè)用戶不重復(fù)) session 保存這個(gè) hash
每次請求的時(shí)候驗(yàn)證這個(gè) hash 就好了。
每次登錄都不同,不純在泄漏問題

憶往昔 回答

應(yīng)該是采用的工具的問題,我使用的Mp4box得到的segment好像是這種播放器不支持的,我換成另外一個(gè)bento4中的提供的mp4dash來作切片后,將得到的output上傳到服務(wù)器,在用播放器就可以正常播放了。

心癌 回答
  1. 把值取出來
  2. 合并數(shù)據(jù)array_merge
雨萌萌 回答

lamp:服務(wù)器為apache,php作為apache的一個(gè)模塊被加載到apache進(jìn)程中,apache接受的動態(tài)請求通過SAPI與php進(jìn)行交互,即php的Apache 2.0 Handler模式
lnmp:web服務(wù)器為nginx,接受到動態(tài)請求通過socket轉(zhuǎn)發(fā)給后端php-fpm,進(jìn)行處理并返回給webserver,此時(shí)php的運(yùn)行模式為PHP-CGI,fpm為PHP fast-cgi的協(xié)議的實(shí)現(xiàn)

瘋子范 回答

編碼問題
標(biāo)題欄右鍵,選擇options
clipboard.png

你好胸 回答

store.subscribe() 接收的參數(shù)是一個(gè)函數(shù),每次 state 改變的時(shí)候會執(zhí)行一次這個(gè)函數(shù)。而不是組件。

如果你要在 React 中使用 Redux,應(yīng)該使用 react-redux,詳情請閱讀 Redux 官方文檔或者它的中文翻譯版

懷中人 回答

simplexml_load_string

雨萌萌 回答

很可能是在ps中用的字體,并沒有在電腦的操作系統(tǒng)中安裝過,所以網(wǎng)頁無法識別HiraginoSansGBW3 這個(gè)字體,就用了默認(rèn)字體。

要驗(yàn)證這一點(diǎn)也簡單,換個(gè)網(wǎng)頁常用的字體上去,看看是否一致,起碼證明了并非代碼寫錯(cuò)了。

如果一定要實(shí)現(xiàn)ps中的字體效果,需要想辦法實(shí)現(xiàn),當(dāng)一個(gè)用戶打開網(wǎng)站時(shí),自動給用戶的電腦安裝字體,讓網(wǎng)頁可以識別?;蛘?,讓ued妥協(xié),用常用的字體。再或者,這段效果只是一小部分的話,直接截圖吧。