redis 别名库里怎么起别名

So, let&s put some fun in redis
redis的命令列表是写死在代码里面,编译后就没法修改(跟nginx一个德行)
硬编码一些额外的方法到redis中
最初写的一个hello world级的测试命令
void wendalCommand(redisClient *c) {
// 从timeCommand拷贝的...
addReplyMultiBulkLen(c,3);
// 共返回3个结果
addReplyBulkCString(c, &Hi,Wendal&); // 输出个字符串啦
gettimeofday(&tv,NULL);
// 获取时间, 也是从timeCommand拷贝的
addReplyBulkLongLong(c,tv.tv_sec);
// 不解释了
addReplyBulkLongLong(c,tv.tv_usec);
// 不解释了
然后在redisCommandTable中声明一个新的命令,就搞定了
{&wendal&, wendalCommand,1,&rR&,0,NULL,0,0,0,0,0}
做得更灵活?上动态库,哈哈
so,我声明了2个新的命令, 加载/卸载动态库
{&loadlib&,loadlibCommand,2,&wmaR&,0,NULL,0,0,0,0,0},
{&unloadlib&,unloadlibCommand,2,&wmaR&,0,NULL,0,0,0,0,0}
其中, 加载动态库,就是接受一个路径,并执行其redis_lib_init方法
// 简化版的loadlibCommand
void loadlibCommand(redisClient *c) {
int (*redis_lib_init)(redisClient*, dict*);
handle = dlopen(c-&argv[1]-&ptr, RTLD_LAZY);
if (!handle) {
addReplyError(c, dlerror());
redis_lib_init = dlsym(handle, &redis_lib_init&); // 查找redis_lib_init
if ((error = dlerror()) != NULL)
dlclose(handle);
addReplyError(c, error);
re = redis_lib_init(c, mands); // 执行之, 返回0就成功
dlclose(handle);
addReplyError(c, &lib init error&);
addReply(c,shared.ok);
server.dirty ++;
// 使dirty自增,这样就能同步到slave了
redis动态库示例
禁用flushdb命令
#include &redis.h&
static void*
extern int redis_lib_init(redisClient *c) {
flushdb = mands, sdsnew(&FLUSHDB&)); // 命令列表就是mands中,一个dict
if (!flushdb) return 1; // 找不到? 被其他库删掉了?
mands, sdsnew(&FLUSHDB&)); // 删除但不要执行free
extern void redis_lib_depose(redisClient *c) {
mands, sdsnew(&FLUSHDB&), flushdb); // 卸载的时候就赋值回去,呵呵
Please enable JavaScript to view the
Categories
& Wendal Chen 2013
and with help from本帖子已过去太久远了,不再提供回复功能。Redis介绍及常用命令_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
Redis介绍及常用命令
&&Redis介绍及常用命令
阅读已结束,下载文档到电脑
想免费下载更多文档?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩48页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢相关文章推荐
我们知道,mysql是持久化存储,存放在磁盘里面,检索的话,会涉及到一定的IO,为了解决这个瓶颈,于是出现了缓存,比如现在用的最多的 memcached(简称mc)。首先,用户访问mc,如果未命中,就...
Redis 是一个高性能的key-value数据库, 支持主从同步, 完全实现了发布/订阅机制, 因此可以用于聊天室等场景. 主要表现于多个浏览器之间的信息同步和实时更新....
创建数据库  在redis的server端,维护着多个数据库(默认为16个)。
  所有的数据库以数组的形式保存在redisServer结构中 struct redisServer {
1、 redis简介
redis是Nosql数据库中使用较为广泛的非关系型内存数据库,redis内部是一个key-value存储系统。它支持存储的value类型相对更多,包括string(字符串)...
转自:/runningsmallguo/p/5871412.html
我知道有些地方没说到位,希望大神们提出来,我会吸取教训,大家共同进步!
随着数据体积的激增,MySQL+memcache已经满足不了大型互联网类应用的需求,许多机构也纷纷选择Redis作为其架构上的补充,然而Redis的使用门槛并不低,比如不支持SQL等,这里为大家分享R...
问题导读:
1.Redis 是什么?
2 Redis用来做什么?
3 Redis的优点?
4 Redis的缺点?
阅读目的: 对什么是内存型数据库有概念性的认知。?
一般的redis逻辑redis缓存会出现什么问题?redis适合缓存怎么样的数据?redis集群
之前我有博客也尝试过使用redis,在实际的项目中确实作用挺大的。至少对于数...
为什么Memcached和Redis如此流行? 不仅是其具有超高的性能,还因为相对来说他们都非常简单。 对程序员来说上手使用Memcached或Redis相当容易。 安装和设置并集成到系统中可能只需要...
使用redis作为缓存,数据还需要存入数据库中吗?
他的最新文章
他的热门文章
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)

我要回帖

更多关于 redis 别名 的文章

 

随机推荐