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
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
//初始化redis实例
$redis = new Redis();
 
/* connect 、 open 链接redis
 * @param string host redis服务器地址
 * @param int port 链接端口 可选
 * @param float timeout 链接超时时间,可选,默认为0无限制
 * @param NULL reserved 如果retry_interval有值,reserved应该为NULL
 * @param int intry_interval 相隔intry_interval后尝试重新连接 可选
 * @return bool 成功返回true,失败返回false
 */
$redis->connect($redis_host,$redis_port);
 
/* 连接到一个redis实例或重用的连接已经建立
 * @param string host redis服务器地址
 * @param int port 链接端口 可选
 * @param float timeout 链接超时时间,可选,默认为0无限制
 * @param NULL reserved 如果retry_interval有值,reserved应该为NULL
 * @param int intry_interval 相隔intry_interval后尝试重新连接 可选
 * @return bool 成功返回true,失败返回false
 */
$redis->pconnect($redis_host,$redis_port);
 
/* 使用密码验证连接是否合法,警告:密码在网络中使用明文传输
 * @param string password 密码
 * @return bool 合法返回true,否则返回false
 */
$redis->auth('password');
 
/* 改变当前连接中已经选择的数据库,默认当前数据库下标为0,数据库16个
 * @param index INTEGER 数据库下标
 * @return bool 成功返回true,失败返回false
 */
 $redis->select(1);
  
/* 在当前redis实例中关闭除了使用pconnect建立的链接 */
$redis->close();
 
/* 设置客户端配置
 * @param name 配置名称
 * @param value 配置值
 * @return bool 成功返回true,失败返回false
 */
$redis->setOption(Redis::OPT_SERIALIZER, Redis::SERIALIZER_NONE);
 
/* 获取客户端配置
 * @param name 配置名称
 * @return value 配置值
 */
$redis->getOption(Redis::OPT_SERIALIZER);
 
/* 检查当前链接状态
 * @return value 成功返回"+PONG",否则抛出RedisException异常
 */
$redis->ping();
 
/* 发送一段字符串到redis服务,然后返回相同字符串
 * @param string message 发送字符串
 * @return string 返回消息
 */
$redis->echo('echo_msg');
 
/* 开始在后台重写AOF(AppendOnly FILE),数据库持久化
 * @return bool 成功返回true,失败返回false
 */
$redis->bgrewriteaof();
 
/* 将数据异步保存到硬盘中
 * @return bool 成功返回true,失败返回false,如果保存已经在运行,则返回false
 */
$redis->bgsave();
 
/* 获取或者设置redis服务器配置参数
 * @param string operation “GET” 或者 “SET”
 * @param string key 获取或者设置的key
 * @param string value 获取或者设置的value
 * @return 如果是set,则返回bool,如果是get,则返回value
 */
$redis->config("GET","*max-*-entries");
$redis->config("SET","dir","/var/run/redis/dumps/");
 
/* 返回当前数据库key的数量
 * @return int 数据库key的数量
 */
$redis->dbsize();
 
/* 移除所有数据库中所有的key
 * @return bool true 总是返回true
 */
$redis->flushAll();
 
/* 移除所有key从当前数据库中
 * @return value true 总是返回true
 */
$redis->flushDB();
 
/* 获取关于服务器信息和统计,
 * 无参数是 返回:
 * redis_version redis版本信息
 * arch_bits 框架(x86/x64)
 * uptime_in_seconds redis运行的秒数
 * uptime_in_days redis运行的天数
 * connected_clients 客户端链接数
 * connected_slaves 从服务器链接数
 * used_memory 已使用内存大小
 * changes_since_last_save  距离最近一次成功创建持久化文件之后,经过了多少秒
 * bgsave_in_progress  一个标志值,记录了服务器是否正在创建 RDB 文件
 * last_save_time  最近一次成功创建 RDB 文件的 UNIX 时间戳
 * total_connections_received  服务器已接受的连接请求数量
 * total_commands_processed   服务器已执行的命令数量
 * role   如果当前服务器没有在复制任何其他服务器,那么这个域的值就是 master ;否则的话,这个域的值就是 slave 。注意,在创建复制链的时候,一个从服务器也可能是另一个服务器的主服务器。
 * 如果存在参数,则获取参数对应部分数据,详细参照:http://redisdoc.com/server/info.html
 * @param string 获取那部分数据
 * @return assoc_array 关于服务器的消息或统计
 */
$redis->info();              /* standard redis INFO command */
$redis->info("COMMANDSTATS");    /* Information on the commands that have been run (>=2.6 only)*/
$redis->info("CPU");         /* just CPU information from Redis INFO */
 
/* 返回上次保存数据到硬盘的时间戳
 * @return int 时间戳
 */
$redis->lastSave();
 
/* 重置info()函数返回的那些信息
 * @return bool 成功返回true,失败返回false
 */
$redis->resetStat();
 
/* 服务器异步保存数据到硬盘,等待操作完成
 * @return bool 成功返回true,失败返回false,如果保存已经在运行,则返回false
 */
$redis->save();
 
/* 改变从服务器
 * 可填 host(string)、port(int)或者不填
 * @return bool 成功返回true,失败返回false
 */
$redis->slaveof('10.0.1.7', 6379);
$redis->slaveof();
 
/* 返回服务器时间
 * @return assoc_array 时间戳和微秒数
 */
$redis->time();
 
/* 访问redis慢日记
 * @param string operation “GET”,“LEN”,“RESET”
 * @return “GET“返回特定数目的慢查询,”RESET“重置慢查询,”LEN“返回慢查询条目数
 */
$redis->slowlog('get', 10);
$redis->slowlog('get');
$redis->slowlog('reset');
 
/* 通过key获取对应的value
 * @param string or bool
 * @return string or bool 如果key不存在,返回false,否则返回value
 */
$redis->get('key');
 
/* 设置key-value
 * @param key
 * @param value
 * @param timeout or option_array,过时时间或者选项数组,如果参数为整数,则调用SETEX,如果传一个数组,且redis 大于 2.6.12,则作为扩展选项数组
 * @return bool 如果命令成功,返回true
 */
$redis->set('key', 'value');
$redis->set('key','value', 10);
// Will set the key, if it doesn't exist, with a ttl of 10 seconds
$redis->set('key', 'value', Array('nx', 'ex'=>10));
// Will set a key, if it does exist, with a ttl of 1000 miliseconds
$redis->set('key', 'value', Array('xx', 'px'=>1000));
 
/* 设置key-value和 改key的ttl(生存时间)
 * @param string key
 * @param int ttl 单位为分钟
 * @param string value
 * @return bool 成功返回true
 */
$redis->setex('key', 3600, 'value'); // sets key → value, with 1h TTL.
 
/* 设置key-value和 改key的ttl(生存时间)
 * @param string key
 * @param int ttl 单位为毫秒
 * @param string value
 * @return bool 成功返回true
 */
$redis->psetex('key', 100, 'value'); // sets key → value, with 0.1 sec TTL.
 
/* 当key不存在,插入value,否则不操作
 * @param key
 * @param value
 * @return bool 成功返回true,失败返回false,如果存在key也返回false
 */
$redis->setnx('key', 'value');
 
 
/* 移除key
 * @param key_array
 * @return int 删除key的个数
 */
$redis->set('key1', 'val1');
$redis->set('key2', 'val2');
$redis->set('key3', 'val3');
$redis->set('key4', 'val4');
$redis->delete(array('key3', 'key4')); //return 2
 
/* 判断key是否存在
 * @param key
 * @return bool 存在返回true,否则返回false
 */
$redis->exists('key');
 
/* 使key对应的value自增1
 * @param key
 * @return 一个新value
 */
 $redis->incr('key1');
  
 /* 使key对应的value增value
  * @param key
  * @param int value 增量
  * @return 一个新value
  */
$redis->incrBy('key1',10);
 
/* 使key对应的value增value
 * @param key
 * @param float value 增量
 * @return 一个新value
 */
$redis->incrByFloat('key1',1.3);
 
/* 使key对应的value自减1
 * @param key
 * @return 一个新value
 */
 $redis->decr('key1');
 
/* 使key对应的value减value
 * @param key
 * @param int value
 * @return 一个新value
 */
$redis->decrBy('key1',10);

  

posted @   小熊猫小  阅读(2086)  评论(0编辑  收藏  举报
编辑推荐:
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· 从问题排查到源码分析:ActiveMQ消费端频繁日志刷屏的秘密
· 一次Java后端服务间歇性响应慢的问题排查记录
· dotnet 源代码生成器分析器入门
阅读排行:
· ThreeJs-16智慧城市项目(重磅以及未来发展ai)
· .NET 原生驾驭 AI 新基建实战系列(一):向量数据库的应用与畅想
· Browser-use 详细介绍&使用文档
· 软件产品开发中常见的10个问题及处理方法
· Vite CVE-2025-30208 安全漏洞
点击右上角即可分享
微信分享提示