php使用redis批量添加,php安裝redis擴展

本文目錄一覽:

windows 7 php怎麼通過redis擴展使用redis

PHP 7安裝Redis擴展

1、php操作第一步就是要安裝對應的擴展。在Windows環境下則是對應的.dll文件。Windows環境下由於編譯環境不同,對應擴展在選擇的時候需要注意當前php的先關信息。可以通過phpinfo()查看。如果可以看到對應的環境,這在選擇擴展的時候有用

2、選擇對應PHP環境擴展

通過以上圖我們可以看到「VC14」和「ts」這樣的字樣,如果不明白的同學在找對應擴展的時候也一樣要找到這樣的字樣。

3、安裝PHP 7擴展

下載php_redis-20160319-ts-vc14-x64.zip之後解壓,將解壓後的php_redis.dll文件放到php\ext目錄下。然後在php.ini末尾添加extension=php_redis.dll。重啟Apache服務。再次通過phpinfo()查看,如圖表示安裝成功

測試例子

1、擴展安裝成功之後需要驗證下是否可以用。web服務器目錄下創建文件輸入下面內容:

?php

$redis = new Redis();

$redis-connect(‘127.0.0.1’,6379);

$redis-set(‘test’,’hello redis’);

echo $redis-get(‘test’);

?

2、然後在網頁上訪問,如果有hello redis輸入則表示擴展安裝成功。

如何批量插入redis hash

使用Redis的腳本功能實現Redis中數據簡單查詢,有需要的朋友可以參考下。 在Redis的設計中,key是一切,對於Redis是可見的,而value對於Redis來說就是一個位元組數組,Redis並不知道你的value中存儲的是什麼

php redis如何使用

開始在

PHP

中使用

Redis

前,要確保已經安裝了

redis

服務及

PHP

redis

驅動,且你的機器上能正常使用

PHP。

PHP安裝redis擴展

/usr/local/php/bin/phpize

#php安裝後的路徑

./configure

–with-php-config=/usr/local/php/bin/php-config

make

make

install

修改php.ini文件

vi

/usr/local/php/lib/php.ini

增加如下內容:

extension_dir

=

“/usr/local/php/lib/php/extensions/no-debug-zts-20090626”

extension=redis.so

安裝完成後重啟php-fpm

apache。查看phpinfo信息,就能看到redis擴展。

連接到

redis

服務

?php

//連接本地的

Redis

服務

$redis

=

new

Redis();

$redis-connect(‘127.0.0.1’,

6379);

echo

“Connection

to

server

sucessfully”;

//查看服務是否運行

echo

“Server

is

running:

.

$redis-ping();

?

執行腳本,輸出結果為:

Connection

to

server

sucessfully

Server

is

running:

PONG

Redis

PHP

String(字符串)

實例

?php

//連接本地的

Redis

服務

$redis

=

new

Redis();

$redis-connect(‘127.0.0.1’,

6379);

echo

“Connection

to

server

sucessfully”;

//設置

redis

字符串數據

$redis-set(“tutorial-name”,

“Redis

tutorial”);

//

獲取存儲的數據並輸出

echo

“Stored

string

in

redis::

.

jedis.get(“tutorial-name”);

?

執行腳本,輸出結果為:

Connection

to

server

sucessfully

Stored

string

in

redis::

Redis

tutorial

Redis

PHP

List(列表)

實例

?php

//連接本地的

Redis

服務

$redis

=

new

Redis();

$redis-connect(‘127.0.0.1’,

6379);

echo

“Connection

to

server

sucessfully”;

//存儲數據到列表中

$redis-lpush(“tutorial-list”,

“Redis”);

$redis-lpush(“tutorial-list”,

“Mongodb”);

$redis-lpush(“tutorial-list”,

“Mysql”);

//

獲取存儲的數據並輸出

$arList

=

$redis-lrange(“tutorial-list”,

,5);

echo

“Stored

string

in

redis::

print_r($arList);

?

執行腳本,輸出結果為:

Connection

to

server

sucessfully

Stored

string

in

redis::

Redis

Mongodb

Mysql

Redis

PHP

Keys

實例

?php

//連接本地的

Redis

服務

$redis

=

new

Redis();

$redis-connect(‘127.0.0.1’,

6379);

echo

“Connection

to

server

sucessfully”;

//

獲取數據並輸出

$arList

=

$redis-keys(“*”);

echo

“Stored

keys

in

redis::

print_r($arList);

?

執行腳本,輸出結果為:

Connection

to

server

sucessfully

Stored

string

in

redis::

tutorial-name

tutorial-list

php怎麼將數據導入redis

對於大訪問量的站點使用默認的Session 並不合適,我們可以將其存入數據庫、或者使用Redis KEY-VALUE數據存儲方案

首先新建一個session表

CREATE TABLE `sessions` (

`sid` char(40) NOT NULL,

`updatetime` int(20) NOT NULL,

`data` varchar(200) NOT NULL,

UNIQUE KEY `sid` (`sid`) USING HASH

) ENGINE=MEMORY DEFAULT CHARSET=utf8;

Mysql 的memory引擎採用內存表,所有數據存儲在內存,操作速度快

複製代碼

?php

//引入數據庫文件

include “db.php”;

class MySessionHandler implements SessionHandlerInterface

{

private $savePath;

private $sessData;

public $expiretime; //設置過期時間

public $db; //數據庫

public function __construct($hanlder =”){

$this-db = Database::getInstance();

//獲取數據庫實力

///var_dump($this-db);

}

public function open($savePath, $sessionName)

{

return true;

}

public function close()

{

return true;

}

public function read($id)

{

$sql =”select * from sessions where sid =’$id'”;

$result = $this-db-execute($sql);

if(!empty($result)){

return $this-sessData = $result;

}

}

//函數的參數 $id – 當前會話ID

//數據DATA – 序列化之後的字符串

public function write($id, $data)

{

// echo $id;

// echo $data;

$now = time();

$newExp = $now+$this-expiretime; //總時間=當前時間 + 期限時間

$sql = “select * from sessions where sid =’$id'”;

$result = $this-db-getOne($sql);

//var_dump($result);

if($data==”||isset($data)){

$data = $this-sessData;

}

if($result){

//如果存在則更新

$sql =”update sessions set updatetime = ‘$newExp’,data =’$data’ where sid = ‘$id'”;

//echo $sql;

$update_data =$this-db-execute($sql);

if($update_data){

return true;

}

}else{

//不存在則生成生成

$sql = “insert into sessions(sid,updatetime,data) values(‘$id’,’$now’,’$data’)”;

$insert_data = $this-db-execute($sql);

if($insert_data){

return true;

}

}

return false;

}

public function destroy($id)

{ //銷毀

$sql = “delete from sessions where sid=”.”$id”;

$destory = $this-db-execute($sql);

if($destory){

return true;

}else{

return false;

}

}

public function gc($sessMaxLifeTime)

{

$t = time();

$sql =”delete from sessions where $t – ‘updatetime’${sessMaxLifeTime}”;

$data = $this-db-execute($this-tosql);

if($data){

return true;

}else{

return false;

}

return true;

}

}

複製代碼

實例化

此處 PHP 手冊可以有兩種方法

1,實現了SessionHandlerInterface借口的對象,自PHP5.4可以使用

2 ,直接使用 session_set_save_handler

複製代碼

//判斷PHP版本

if(version_compare(PHP_VERSION,5.4)==1){

session_set_save_handler($handler, true);

session_start();

}else{

ini_set(‘session.use_trans_sid’,0);

ini_set(‘session.use_cookies’,1);

ini_set(‘session.cookie_path’,’/’);

ini_set(‘session.save_handler’,’user’);

session_module_name(‘user’);

session_set_save_handler(array($session,”open”),array($session,”close”),array($session,”read”),array($session,”write”),array($session,”destory”),array($session,”gc”));

session_start();

}

$_SESSION[‘QQ’]=”QQ”;

echo $_SESSION[‘QQ’];

複製代碼

數據庫代碼 db.php

複製代碼

?php

class Database{

static $instance;

static $db;

static function getInstance(){

if(self::$instance){

return self::$instance;

}else{

return new Database();

}

}

public function __construct(){

self::$db = new PDO(‘mysql:host=localhost;dbname=session’, ‘root’,”);

}

public function getOne($sql){

$rs =self::$db-query($sql);

@$rs-setFetchMode(PDO::FETCH_ASSOC);//返回關聯數組

$result = $rs – fetch();

return $result;

}

public function execute($sql){

$rs = self::$db-exec($sql);

return $rs;

}

}

//$data = Database::getInstance();

//var_dump($data);

複製代碼

使用REDIS 存儲SESSION

複製代碼

?php

class SessionManager{

private $redis;

private $sessionSavePath;

private $sessionName;

private $sessionExpireTime = 30;

public function __construct(){

$this-redis = new Redis();

$this-redis-connect(‘127.0.0.1’,6379); //連接redis

$retval = session_set_save_handler(

array($this,”open”),

array($this,”close”),

array($this,”read”),

array($this,”write”),

array($this,”destory”),

array($this,”gc”)

);

session_start();

}

public function open($path,$name){

return true;

}

public function close(){

return true;

}

public function read($id){

$value = $this-redis-get($id);

if($value){

return $value;

}else{

return “”;

}

}

public function write($id,$data){

if($this-redis-set($id,$data)){

$this-redis-expire($id,$this-sessionExpireTime);

//設置過期時間

return true;

}

return false;

}

public function destory($id){

if($this-redis-delete($id)){

return true;

}

return false;

}

public function gc($maxlifetime){

return true;

}

//析構函數

public function __destruct(){

session_write_close();

}

}

$re = new SessionManager();

$_SESSION[‘name’] = “qq”;

echo $_SESSION[‘name’];

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/253941.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-14 02:19
下一篇 2024-12-14 02:19

相關推薦

  • PHP和Python哪個好找工作?

    PHP和Python都是非常流行的編程語言,它們被廣泛應用於不同領域的開發中。但是,在考慮擇業方向的時候,很多人都會有一個問題:PHP和Python哪個好找工作?這篇文章將從多個方…

    編程 2025-04-29
  • PHP怎麼接幣

    想要在自己的網站或應用中接受比特幣等加密貨幣的支付,就需要對該加密貨幣擁有一定的了解,並使用對應的API進行開發。本文將從多個方面詳細闡述如何使用PHP接受加密貨幣的支付。 一、環…

    編程 2025-04-29
  • Java批量執行SQL時Communications Link Failure Socket is Closed問題解決辦法

    對於Java開發人員來說,批量執行SQL是一個經常會遇到的問題。但是,有時候我們會遇到「Communications link failure socket is closed」這…

    編程 2025-04-28
  • 使用PHP foreach遍歷有相同屬性的值

    本篇文章將介紹如何使用PHP foreach遍歷具有相同屬性的值,並給出相應的代碼示例。 一、基礎概念 在講解如何使用PHP foreach遍歷有相同屬性的值之前,我們需要先了解幾…

    編程 2025-04-28
  • 在CentOS上安裝Redis

    Redis是一款非關係型數據庫,它支持多種數據結構,包括字符串、哈希、列表、集合、有序集合等。Redis運行內存內並且支持數據持久化,它還可以應用於緩存、消息隊列等場景。本文將介紹…

    編程 2025-04-28
  • PowerDesigner批量修改屬性

    本文將教您如何使用PowerDesigner批量修改實體、關係等對象屬性。 一、選擇要修改的對象 首先需要打開PowerDesigner,並選擇要修改屬性的對象。可以通過以下兩種方…

    編程 2025-04-27
  • 解析spring.redis.cluster.max-redirects參數

    本文將圍繞spring.redis.cluster.max-redirects參數進行詳細闡述,從多個方面解讀它的意義與作用,並給出相應的代碼示例。 一、基礎概念 在介紹sprin…

    編程 2025-04-27
  • PHP獲取301跳轉後的地址

    本文將為大家介紹如何使用PHP獲取301跳轉後的地址。301重定向是什麼呢?當我們訪問一個網頁A,但是它已經被遷移到了另一個地址B,此時若服務器端做了301重定向,那麼你的瀏覽器在…

    編程 2025-04-27
  • Redis Bitmap用法介紹

    Redis是一款高性能的內存數據庫,支持多種數據類型,其中之一便是bitmap。Redis bitmap(位圖)是一種用二進制位來表示元素是否在集合中的數據結構。由於使用了二進制位…

    編程 2025-04-27
  • Python批量導入數據庫

    本文將介紹Python中如何批量導入數據庫。首先,對於數據分析和挖掘領域,數據庫中批量導入數據是一個必不可少的過程。這種高效的導入方式可以極大地提高數據挖掘、機器學習等任務的效率。…

    編程 2025-04-27

發表回復

登錄後才能評論