Redis
_charming_Man_
这个作者很懒,什么都没留下…
展开
-
关于bitArray、bitMap的使用
这几天学习了redis,redis中用了许多bit操作来节省空间内存,下面列举一下 1.bitArray在redis集群中的state结构中用到了,主要是为了分配16438个哈希槽,就用到结构unsigned char XXX[16438 / 8];这样将bit分配给每一个bit位,若哈希槽被分配了就将bit位置1,否则置0; 2.在redis的缓存穿透,需要用到布隆滤波器,所谓布隆滤波器的作用是在大数据(例如10亿条数据中)找到是否存在的键值,利用哈希碰撞来找到碰撞点,如有这个key就存在,这个has原创 2020-07-13 09:49:07 · 436 阅读 · 0 评论 -
redis学习之独立功能的实现
1.发布和订阅 SUBSCRIBE 将所有订阅的信息存在pubsub_channels中 UNSUBSCRIBE 是取消订阅的操作,会在pubsub_channels中删除掉 PUBLISH 是发布数据,用法是PUBLISH "news.it" "hello",其中 news.it是频道 hello是消息内容 PUNSCRIBE 是模式订阅,可以订阅news.*就是news里的所有数据,会存储在pubsub_patterns中 UNPUNSCRIBE 是取消模式订阅,会存储在pubs..原创 2020-07-09 11:31:49 · 86 阅读 · 0 评论 -
redis单机服务器的实现
redis服务器参数 structredisServer{ /*General*/ pid_tpid;/*Mainprocesspid.*/ char*configfile;/*Absoluteconfigfilepath,orNULL*/ char*executable;/*Absoluteexecutablefilepath.*/ ...原创 2020-07-09 10:47:34 · 178 阅读 · 0 评论 -
redis学习之集群
1.集群定义 redis中集群由三个主要的结构控制,clusterNode、clusterState、clusterLink,下面展示结构详情: typedefstructclusterNode{ mstime_tctime;/*Nodeobjectcreationtime.*/ charname[CLUSTER_NAMELEN];/*Nodename,hexstring,sha1-size*/ intflags;/*CL...原创 2020-07-09 10:45:19 · 95 阅读 · 0 评论 -
redis学习之哨兵模式
1.1简介 哨兵(Sentinel),由一个或者多个Sentinel组成监视任意多个主服务器以及主服务器的从服务器,自动将下线的主服务器的某个从服务器升级为主服务器。 举个例子,假设有1个主服务器server1,和多个从服务器server1.....servern 1)哨兵监视所有服务器 2)主服务器server1下线后,从其附属的服务器中选出来一个主服务器,并向其他服务器发送slaveof的命令 3)其他服务器附属于新的服务器 4)继续监视server1,若他重新启动时,让他成为当前的主服务器原创 2020-07-08 16:23:31 · 224 阅读 · 0 评论 -
Redis的数据结构简述
1.SDS struct sdshdr { int len ; int alloc; int flag; char buf[]; } 2. link list typedefstructlistNode{ structlistNode*prev; structlistNode*next; void*value; }listNode; typedefstructlistIter{ listNode*next; i...原创 2020-07-03 15:11:41 · 224 阅读 · 0 评论 -
Redis实战第一章(初识Redis)
redis的几种种命令 SET GET DEL redis中的列表(list) LPOP RPOP LPUSH RPUSH LRANGE 获得左侧的范围值 LINDEX获取列表中中的某个元素的值 redis的集合(set) 集合和列表的区别是,列表可以重复,而集合不能重复 无序, SADD 添加 SMEMBERS 返回集合包含的所有元素 SISMEMBER 检查这个元素是否在这个集合中 SREM 移除 redis的散列(hash) hash可以存储多个键值对之间的映射原创 2020-06-17 14:30:14 · 259 阅读 · 0 评论