欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  php教程

php操作redis缓存方法分享

程序员文章站 2022-06-11 21:28:36
...

php操作redis缓存方法分享

  除了memcache这个比较常用的php的操作类库,我们可能还非常熟悉一个内存缓存的东西,那就是redis,我们给大家分享的这个php技术文章,就是关于如何使用php进行操作redis这个内存缓存工具类库的哦。

  php redis缓存操作

  ?

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

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

/**

* Redis缓存操作

* @author hxm

* @version 1.0

* @since 2015.05.04

*/

class RCache extends Object implements CacheFace

{

private $redis = null; //redis对象

private $sId = 1; //servier服务ID

private $con = null;//链接资源

/**

* 初始化Redis

*

* @return Object

*/

public function __construct()

{

if ( !class_exists('Redis') )

{

throw new QException('PHP extension does not exist: Redis');

}

$this->redis = new Redis();

}

/**

* 链接memcahce服务

*

* @access private

* @param string $key 关键字

* @param string $value 缓存内容

* @return array

*/

private function connect( $sid )

{

$file = $this->CacheFile();

require $file;

if(! isset($cache) )

{

throw new QException('缓存配置文件不存在'.$file);

}

$server = $cache[$this->cacheId];

$sid = isset($sid) == 0 ? $this->sId : $sid;//memcache服务选择

if ( ! $server[$sid])

{

throw new QException('当前操作的缓存服务器配置文件不存在');

}

$host = $server[$sid]['host'];

$port = $server[$sid]['port'];

try {

$this->redis->connect( $host , $port );

} catch (Exception $e) {

exit('memecache连接失败,错误信息:'. $e->getMessage());

}

}

/**

* 写入缓存

*

* @access private

* @param string $key 关键字

* @param string $value 缓存内容

* @return array

*/

public function set( $key , $value , $sid , $expire = 0)

{

$data = $this->get($key , $sid); //如果已经存在key值

if( $data )

{

return $this->redis->getset( $key , $value);

} else {

return $this->redis->set( $key , $value);

}

}

/**

* 读取缓存

*

* @access private

* @param string $key 关键字

* @param int $sid 选择第几台memcache服务器

* @return array

*/

public function get( $key , $sid)

{

$this->connect( $sid );

return $this->redis->get($key);

}

/**

* 清洗(删除)已经存储的所有的元素

*

* @access private

* @return array

*/

public function flush()

{

$this->connect();

return $this->redis->flushall();

}

/**

* 删除缓存

*

* @access private

* @param string $key 关键字

* @param int $sid 选择第几台memcache服务器

* @return array

*/

public function remove( $key , $sid)

{

$this->connect();

return $this->redis->del($key);

}

/**

* 析构函数

* 最后关闭memcache

*/

public function __destruct()

{

if($this->redis)

{

$this->redis->close();

}

}

}

  以上所述就是本文的全部内容了,希望大家能够喜欢。