![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
aoerqileng
这个作者很懒,什么都没留下…
展开
-
redis命令
[root@qy_db_194017 bin]# redis-cli 127.0.0.1:6379> client list id=2 addr=127.0.0.1:43108 fd=6 name= age=71426 idle=0 flags=S db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r原创 2016-06-29 15:15:59 · 4936 阅读 · 0 评论 -
redis 从库断开重练的步骤
redis的从库在断开后,重新配置了原主库 534:M 25 Apr 12:12:57.692 - Accepted 127.0.0.1:51995 534:M 25 Apr 12:12:57.698 * Slave 127.0.0.1:6380 asks for synchronization 534:M 25 Apr 12:12:57.698 * Full resync requeste...原创 2018-04-25 12:51:12 · 1110 阅读 · 0 评论 -
redis工具
https://blog.csdn.net/mysqldba23/article/details/68059348有很多的redis 内存分析需求,可以用redis-rdb-tools来做原创 2018-07-04 16:42:15 · 303 阅读 · 0 评论 -
redis在从库配置后,有时候会发现从库key的数量要远远小于主库
redis在从库配置后,有时候会发现从库key的数量要远远小于主库,有可能会导致一些疑惑,数据难道不同步?同步出问题了?其实并没有问题,rdb在保存到磁盘上的时候,会将过期的key,但是还在内存中的key排除掉,这样从库导入后,会发现key的数量要比主库少。看下代码。后台save的方法int rdbSaveBackground(char *filename) { pid_t chil...原创 2018-12-19 14:27:55 · 432 阅读 · 0 评论 -
redis键清除
redis清除策略,惰性删除:只有在访问时候去看是否过期删除,定时清理:后台进程会定时去删除一些key,内存使用超过最大设置:在超过maxmemory设置后,会淘汰一些key.下面是定时任务相关的代码:#一秒调用server.hz次/* This is our timer interrupt, called server.hz times per second. * Here is whe...原创 2018-12-20 11:16:08 · 701 阅读 · 0 评论 -
redis2.6内存使用达到最大设置值后释放内存的方式
有的时候设置了最大内存,使用的过程中内存很快达到了限制值,这个时候,根据配置redis会释放一些内存出来,可能释放的不如写入的多,就会导致客户端写入报错。下面是释放的方法/* ============================ Maxmemory directive ======================== *//* This function gets called whe...原创 2018-12-20 14:19:00 · 659 阅读 · 0 评论 -
redis2.6的复制建立过程
在执行了slaveof命令后,复制流程进入slaveofCommand参数内部处理void slaveofCommand(redisClient *c) {# 处理slaveof no one if (!strcasecmp(c->argv[1]->ptr,"no") &&原创 2018-12-18 16:17:56 · 417 阅读 · 0 评论 -
redis 客户端与服务器建立连接过程
客户端main方法int main(int argc, char **argv) { int firstarg; config.hostip = sdsnew("127.0.0.1"); config.hostport = 6379; config.hostsocket = NULL; config.repeat = 1; config.inte...原创 2018-12-24 14:40:23 · 2052 阅读 · 0 评论 -
redis客户端与server服务端数据交互流程
在之前的连接建立完成后,需要进行数据的交互。流程如下:redis-cli.c#进入repl()/* Start interactive mode when no command is provided */ if (argc == 0 && !config.eval) { /* Note that in repl mode we don't abort...原创 2018-12-24 14:45:31 · 730 阅读 · 0 评论 -
redis-cli中的--bigkeys选项是怎么找大键的
在使用redis-cli的时候,有个bigkey选项可以输出大键的信息,redis是怎么筛选的?下面是具体的代码redis-cli.cstatic void findBigKeys(void) {#存放5中类型的最大的值,与当前的大小进行对比 unsigned long long biggest[5] = {0,0,0,0,0}; unsigned long long sa...原创 2019-01-29 11:28:45 · 9994 阅读 · 0 评论 -
坑爹的memaslap安装
在安装memaslap的过程中,按照晚上的安装方法安装后,没有错误提示,总是找不到memaslap执行文件,看到了 https://blog.csdn.net/jzmzy/article/details/47806371 这个,提示有包没有安装。 安装后,正常。...原创 2018-05-09 12:48:13 · 532 阅读 · 0 评论 -
memcached本机配置复制环境
这个memcached的本机复制环境配置有些坑爹。我下载的是memcached-1.2.8-repcached-2.2.tar.gz这个包,解压后,安装部署 ./configure –prefix=/usr/local/memcached –with-libevent=/usr/local/lib –enable-replication –enable-64bit这些都没有什么,关键是在...原创 2018-04-24 10:04:50 · 308 阅读 · 0 评论 -
redis字符串操作
127.0.0.1:6379> get name “bai” 127.0.0.1:6379> append ‘name’ ‘hello’ (integer) 8 127.0.0.1:6379> get ‘name’ “baihello” 127.0.0.1:6379> strlen ‘name’ (integer) 8 127.0.0.1:6379> getrange ‘name’原创 2016-07-03 15:35:37 · 437 阅读 · 0 评论 -
redis 集合操作
集合是去重的,无序的 127.0.0.1:6379> sadd skey ‘bai’ (integer) 1 127.0.0.1:6379> sadd skey ‘bai’ ‘xiao’ ‘yu’ (integer) 2 127.0.0.1:6379> scard skey (integer) 3 127.0.0.1:6379> smembers skey 1) “yu” 2) “原创 2016-07-03 15:57:05 · 443 阅读 · 0 评论 -
redsi 散列
127.0.0.1:6379> hmset ‘baixiaoyu’ age ‘22’ sex ‘male’ home ‘inner monglia’ OK 127.0.0.1:6379> hgetall baixiaoyu 1) “age” 2) “22” 3) “sex” 4) “male” 5) “home” 6) “inner monglia” 127.0.0.1:6379>原创 2016-07-03 16:03:57 · 466 阅读 · 0 评论 -
redis 有序集合
127.0.0.1:6379> ZADD w3ckey 1 redis (integer) 1 127.0.0.1:6379> ZADD w3ckey 2 mongodb (integer) 1 127.0.0.1:6379> ZADD w3ckey 3 mysql (integer) 1 127.0.0.1:6379> ZADD w3ckey 4 mysql (integer)原创 2016-07-03 16:50:24 · 602 阅读 · 0 评论 -
redis延时监控
redis的延时是指客户端发送一个命令,并接受到响应的最大延时, 可以从下面的几方面进行排查: 1使用slow log功能检查是否有慢的命令在执行 2对于ec2的用户,确保使用HVM 3transparent大页内存需要被禁用 4使用latency监控器功能来获得延时事件的可读描述 监控延时 redis-cli –latency -h host -p port 使用延时监控器 1设原创 2016-07-29 15:54:21 · 3070 阅读 · 1 评论 -
redis限制注意点
使用CONFIG SET timeout 控制客户端连接超时 对于客户端的连接输出量有限制 There are two kind of limits Redis uses: The hard limit is a fixed limit that when reached will make Redis closing the client connection as soon as poss原创 2016-07-29 16:13:52 · 1391 阅读 · 0 评论 -
redis复制
redis的复制是异步的,在redis2.8开始,slave阶段性的接受复制流中的信息 一个master可以有多个slave slave能接受来自其他slave的连接 redis的复制在master端是非阻塞的,在slave端也是非阻塞的,当slave在初始化同步的时候,可以使用老版本的数据集来提供查询。然而,在初始化同步后,老的数据集要被删除,新的数据集要被加载,在这段时间内,slave会阻翻译 2016-08-03 12:11:36 · 398 阅读 · 0 评论 -
Redis Sentinel
sentinel能做下面事情: 1监控 2通知 3自动故障转移 4客户端连接sentinel,sentinel能自动提供正确的服务地址 运行sentinel redis-sentinel /path/to/sentinel.conf redis-server /path/to/sentinel.conf –sentinel sentinel模式下运行 该工具是运行在26379端口下翻译 2016-08-02 16:27:38 · 1231 阅读 · 0 评论 -
redis使用内存方式
1当key被删除后,redis的内存不会返回给操作系统 2redis会使用删除掉key后空闲的内存空间 3需要配置maxmemory,如果不配置这个限制,redis可能会用尽机器的内存,同时建议配置 maxmemory-policy 为noeviction 在redis2.2版本开始,很多的数据类型可以被优化压缩至特定的大小,hash,list,由整数组成的set,和排序set,当小于给定的元转载 2016-07-29 14:30:03 · 1101 阅读 · 0 评论 -
redis cluster
redis3.0更高版本 redis的cluster提供了数据自动在多个redis节点上的分片。redis cluster的tcp端口 每个集群节点需要2个tcp连接打开,一个端口用于客户端,比如6379一个端口加上10000,比如16379用于集群总线,就是节点间的内部传输,主要 有失败检测,配置更新,故障转移授权等。这两个端口的偏移量是固定的,总是10000.redis cluster数据翻译 2017-09-12 11:26:44 · 465 阅读 · 0 评论 -
redis 从库setnx的坑
在进行redis的切换过程中,从库的只读关闭,这样应用在发版时候指向从库,可以平滑的进行redis的切换,但是在切换的过程中还是遇到了问题,切换完后,应用的setnx无法对设置了expire的key正常设置,主库上没有问题,在将slave 断掉复制后,setnx正常工作。...原创 2019-06-11 15:48:05 · 1880 阅读 · 0 评论