我正在尝试使用redis_fdw创建一个外表。我使用了以下语法
CREATE FOREIGN TABLE redis_db0(关键文本,值文本) SERVER redis_server 选项(数据库'0');
有人能解释我在OPTIONS中传递的数字参数0吗?
答案 0 :(得分:0)
Redis有多个编号的数据库"在单个实例中。您引用的参数是使用数据库' 0',当您不指定数据库时,这也是默认值(至少在Redis中)。
您可以阅读更多相关内容here,但除非必须,否则基本上不会对其进行更改。
答案 1 :(得分:0)
默认是使用数据库'0',但您可以从源文件networking.c更改默认值,方法:client * createClient(int fd),此语句:selectDb(c,0);
您可以将0更改为您想要的号码,但它应该< = server.dbnum
client *createClient(int fd) {
client *c = zmalloc(sizeof(client));
//some code ignored
selectDb(c,0);//at here,select you want number
客户端中的select 3
命令也调用此方法
int selectDb(client *c, int id) {
if (id < 0 || id >= server.dbnum)
return C_ERR;
c->db = &server.db[id];
return C_OK;
}
然后如果您输入get
,它将执行
robj *lookupKeyReadOrReply(client *c, robj *key, robj *reply) {
robj *o = lookupKeyRead(c->db, key);//loopup the client database
if (!o) addReply(c,reply);
return o;
}