最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

寶塔中ThinkPHP框架使用Redis的一系列教程

 更新時間:2023年03月25日 16:05:31   投稿:yin  
關于redis的安裝,在服務器或者虛擬機上安裝寶塔面板安裝redis,這樣很簡單就可以使用redis了,記得安裝redis的時候不僅要安裝redis軟件,還要進入項目使用的php版本中安裝redis擴展,然后開啟redis軟件

Redis是一種常用的非關系型數(shù)據(jù)庫,主要用作數(shù)據(jù)緩存,數(shù)據(jù)保存形式為key-value,鍵值相互映射。它的數(shù)據(jù)存儲跟MySQL不同,它數(shù)據(jù)存儲在內存之中,所以數(shù)據(jù)讀取相對而言很快,用來做高并發(fā)非常不錯。

關于redis的安裝,在服務器或者虛擬機上安裝寶塔面板安裝redis,這樣很簡單就可以使用redis了,記得安裝redis的時候不僅要安裝redis軟件,還要進入項目使用的php版本中安裝redis擴展,然后開啟redis軟件

1.首先在寶塔的安裝面板,找到redis,點擊安裝。

2.安裝完redis后,點擊設置, 設置個密碼

3.php環(huán)境安裝redis擴展

一定要在網站使用的php版本中,安裝redis擴展。

4.創(chuàng)建類處理文件

ThinkPHP根目錄的extend文件夾中創(chuàng)建文件 RedisPackage.php,內容如下:

<?php
 
class RedisPackage
{
    protected static $handler = null;
    protected $options = [
        'host' => '127.0.0.1',
        'port' => 6379,
        'password' => '這是你是之前設置的redis密碼',
        'select' => 0,
        'timeout' => 20,//關閉時間 0:代表不關閉
        'expire' => 0,
        'persistent' => false,
        'prefix' => '',
    ];
 
    public function __construct($options = [])
    {
        if (!extension_loaded('redis')) {   //判斷是否有擴展(如果你的apache沒reids擴展就會拋出這個異常)
            throw new \BadFunctionCallException('not support: redis');
        }
        if (!empty($options)) {
            $this->options = array_merge($this->options, $options);
        }
        $func = $this->options['persistent'] ? 'pconnect' : 'connect';     //判斷是否長連接
        self::$handler = new \Redis;
        self::$handler->$func($this->options['host'], $this->options['port'], $this->options['timeout']);
 
        if ('' != $this->options['password']) {
            self::$handler->auth($this->options['password']);
        }
 
        if (0 != $this->options['select']) {
            self::$handler->select($this->options['select']);
        }
    }
 
    /**
     * 寫入緩存
     * @param string $key 鍵名
     * @param string $value 鍵值
     * @param int $exprie 過期時間 0:永不過期
     * @return bool
     */
    public static function set($key, $value, $exprie = 0)
    {
        if ($exprie == 0) {
            $set = self::$handler->set($key, $value);
        } else {
            $set = self::$handler->setex($key, $exprie, $value);
        }
        return $set;
    }
 
    /**
     * 讀取緩存
     * @param string $key 鍵值
     * @return mixed
     */
    public static function get($key)
    {
        $fun = is_array($key) ? 'Mget' : 'get';
        return self::$handler->{$fun}($key);
    }
 
    /**
     * 獲取值長度
     * @param string $key
     * @return int
     */
    public static function lLen($key)
    {
        return self::$handler->lLen($key);
    }
 
    /**
     * 將一個或多個值插入到列表頭部
     * @param $key
     * @param $value
     * @return int
     */
    public static function LPush($key, $value, $value2 = null, $valueN = null)
    {
        return self::$handler->lPush($key, $value, $value2, $valueN);
    }
 
    /**
     * 移出并獲取列表的第一個元素
     * @param string $key
     * @return string
     */
    public static function lPop($key)
    {
        return self::$handler->lPop($key);
    }
 
 
}

類RedisPackage中的定義數(shù)組$options,有個健名是password,這里填入上面設置的redis密碼

5.在要使用Redis的Controller中,引入文件

import('RedisPackage', EXTEND_PATH);

6.簡單使用Redis

#設置
\RedisPackage::set('要設置的key','這是value');
 
#獲取
$key = \RedisPackage::get('已設置的key'));

7.Redis擴展

連接redis

$redis = new \Redis(); 
//創(chuàng)建一個redis對象,下面可以直接使用$redis訪問到redis對象

$redis->connect('127.0.0.1', 6379);
//連接redis數(shù)據(jù)庫,127.0.0.1表示本地(如果線上redis和php目錄在同一個IP,則一樣使用127.0.0.1),6379為redis端口號,若線上沒有修改則默認是這個

驗證連接是否成功(可寫可不寫,僅做驗證)

$redis ->set( "test" , "redis 連接成功");
echo $redis ->get( "test");

exists() 判斷鍵是否存在,參數(shù)為鍵名

$redis->exists('active_worker_list')

set()

set() 存儲鍵值,第一個參數(shù)為自己定義的鍵名,第二個參數(shù)為要存儲的數(shù)據(jù),通過該方法可以將數(shù)據(jù)命名之后存入緩存

$result = $redis->set('active_worker_list',$r)

很多時候我們存儲的是數(shù)組類型的數(shù)據(jù),但redis不支持讀寫數(shù)組,所以我們需要將數(shù)組轉成json格式

$result = $redis->set('active_worker_list',json_encode($r,true))

get()

get() 獲取鍵值,參數(shù)為鍵名,通過該方法可以獲取到對應鍵中存儲的值

$result = $redis->get('active_worker_list')

同set一樣,很多時候我們需要的是數(shù)組類型的數(shù)據(jù),所以我們需要將json格式的數(shù)據(jù)轉成數(shù)組

$result = json_decode($redis->get('active_worker_list'),true);

del()

有時候因為一些原因(有可能只是單純賦值的時候賦錯了......)我們需要刪除鍵值,所以我們要用到del(),參數(shù)為鍵名

$redis->del('active_worker_list');

到此這篇關于寶塔中ThinkPHP框架使用Redis的一系列教程的文章就介紹到這了,更多相關寶塔中ThinkPHP使用Redis的教程內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • redis監(jiān)聽key過期事件的詳細步驟

    redis監(jiān)聽key過期事件的詳細步驟

    本文主要介紹了redis監(jiān)聽key過期事件的詳細步驟,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Redis事務為什么不支持回滾

    Redis事務為什么不支持回滾

    事務是關系型數(shù)據(jù)庫的特征之一,那么作為 Nosql 的代表 Redis 中有事務嗎?如果有,那么 Redis 當中的事務又是否具備關系型數(shù)據(jù)庫的 ACID 四大特性,本文就來詳細介紹一下
    2021-08-08
  • Redis?SortedSet數(shù)據(jù)類型及其常用命令總結

    Redis?SortedSet數(shù)據(jù)類型及其常用命令總結

    Redis的SortedSet是一個可排序的set集合,與Java中的TreeSet有些類似,但底層數(shù)據(jù)結構卻差別很大,這篇文章主要介紹了Redis?SortedSet數(shù)據(jù)類型及其常用命令詳解,需要的朋友可以參考下
    2024-06-06
  • Redis模擬延時隊列實現(xiàn)日程提醒的方法

    Redis模擬延時隊列實現(xiàn)日程提醒的方法

    文章介紹了如何使用Redis實現(xiàn)一個簡單的延時任務隊列,通過Redis的有序集合特性來存儲和管理延時任務,通過定期檢查集合中小于等于當前時間的任務并執(zhí)行,可以實現(xiàn)延時任務的管理,感興趣的朋友跟隨小編一起看看吧
    2024-11-11
  • Redis數(shù)據(jù)結構之跳躍表使用學習

    Redis數(shù)據(jù)結構之跳躍表使用學習

    這篇文章主要為大家介紹了Redis數(shù)據(jù)結構之跳躍表使用學習,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Redis的持久化詳解

    Redis的持久化詳解

    Redis是一個基于內存的數(shù)據(jù)庫,它的數(shù)據(jù)是存放在內存中,內存有個問題就是關閉服務或者斷電會丟失,Redis的數(shù)據(jù)也支持寫到硬盤中,這個過程就叫做持久化,文中有詳細的圖介紹,需要的朋友可以參考下
    2023-06-06
  • redis配置文件中常用配置詳解

    redis配置文件中常用配置詳解

    這篇文章主要介紹了redis配置文件中常用配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-04-04
  • Redis數(shù)據(jù)結構SortedSet的底層原理解析

    Redis數(shù)據(jù)結構SortedSet的底層原理解析

    這篇文章主要介紹了Redis數(shù)據(jù)結構SortedSet的底層原理解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • redis的string類型及bitmap介紹

    redis的string類型及bitmap介紹

    這篇文章主要介紹了redis的string類型及bitmap介紹,redis有很多的客戶端連接進來,站在redis所在機器的角度來說,就是有很多socket的連接
    2022-07-07
  • 使用Redis獲取數(shù)據(jù)轉json,解決動態(tài)泛型傳參的問題

    使用Redis獲取數(shù)據(jù)轉json,解決動態(tài)泛型傳參的問題

    這篇文章主要介紹了使用Redis獲取數(shù)據(jù)轉json,解決動態(tài)泛型傳參的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07

最新評論

遂平县| 平遥县| 崇文区| 神农架林区| 乐至县| 岳阳市| 新安县| 凌源市| 巴马| 凯里市| 顺昌县| 尼木县| 瑞金市| 余庆县| 乌鲁木齐市| 澳门| 沧州市| 新余市| 尤溪县| 舟曲县| 武安市| 靖宇县| 前郭尔| 育儿| 昔阳县| 玉门市| 吴桥县| 旺苍县| 铜陵市| 和林格尔县| 神木县| 察隅县| 上蔡县| 金坛市| 东兴市| 永城市| 方正县| 蓬溪县| 东乡| 临泉县| 比如县|