> php教程 > php手册 > 본문

php操作redis缓存方法分享

WBOY
풀어 주다: 2016-06-13 09:02:53
원래의
1050명이 탐색했습니다.

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();

}

}

}

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

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿