广告位联系
返回顶部
分享到

宝塔中ThinkPHP框架使用Redis的一系列教程介绍

Redis 来源:互联网 作者:佚名 发布时间:2023-10-17 22:50:09 人浏览
摘要

Redis是一种常用的非关系型数据库,主要用作数据缓存,数据保存形式为key-value,键值相互映射。它的数据存储跟MySQL不同,它数据存储在内存之中,所以数据读取相对而言很快,用来做高并发非

Redis是一种常用的非关系型数据库,主要用作数据缓存,数据保存形式为key-value,键值相互映射。它的数据存储跟MySQL不同,它数据存储在内存之中,所以数据读取相对而言很快,用来做高并发非常不错。

关于redis的安装,在服务器或者虚拟机上安装宝塔面板安装redis,这样很简单就可以使用redis了,记得安装redis的时候不仅要安装redis软件,还要进入项目使用的php版本中安装redis扩展,然后开启redis软件

1.首先在宝塔的安装面板,找到redis,点击安装。

2.安装完redis后,点击设置, 设置个密码

3.php环境安装redis扩展

一定要在网站使用的php版本中,安装redis扩展。

4.创建类处理文件

ThinkPHP根目录的extend文件夹中创建文件 RedisPackage.php,内容如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

<?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中的定义数组$options,有个健名是password,这里填入上面设置的redis密码

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

1

import('RedisPackage', EXTEND_PATH);

6.简单使用Redis

1

2

3

4

5

#设置

\RedisPackage::set('要设置的key','这是value');

  

#获取

$key = \RedisPackage::get('已设置的key'));

7.Redis扩展

连接redis

1

2

3

4

5

$redis = new \Redis();

//创建一个redis对象,下面可以直接使用$redis访问到redis对象

 

$redis->connect('127.0.0.1', 6379);

//连接redis数据库,127.0.0.1表示本地(如果线上redis和php目录在同一个IP,则一样使用127.0.0.1),6379为redis端口号,若线上没有修改则默认是这个

验证连接是否成功(可写可不写,仅做验证)

1

2

$redis ->set( "test" , "redis 连接成功");

echo $redis ->get( "test");

exists() 判断键是否存在,参数为键名

1

$redis->exists('active_worker_list')

set()

set() 存储键值,第一个参数为自己定义的键名,第二个参数为要存储的数据,通过该方法可以将数据命名之后存入缓存

1

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

很多时候我们存储的是数组类型的数据,但redis不支持读写数组,所以我们需要将数组转成json格式

1

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

get()

get() 获取键值,参数为键名,通过该方法可以获取到对应键中存储的值

1

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

同set一样,很多时候我们需要的是数组类型的数据,所以我们需要将json格式的数据转成数组

1

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

del()

有时候因为一些原因(有可能只是单纯赋值的时候赋错了......)我们需要删除键值,所以我们要用到del(),参数为键名

1

$redis->del('active_worker_list');


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 :
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计