![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
redis
文章平均质量分 90
坤少_jkson
别再用廉价的勤奋掩饰你的懒惰
展开
-
Redis命令之hscan
1、业务背景 在互联网的项目中为了提高性能和吞吐量,通常需要做一些优化和数据异构,比如查询DB,我们可以优化索引,通过命中索引来提高查询速度,也可以把数据异构到Redis,虽然Redis的性能非常好也支持5种数据结构,如果想性能更好的话,可以考虑异构到JVM缓存,也就是DB的数据异构到Redis,Redis的数据定期异构到JVM缓存2、带来问题 在Redis中通过用一个hashmap来存储业务数据,当这些业务数据比较小,我们可以通过hGetAll来获取redis的整个map然后设...原创 2020-11-18 00:24:14 · 9477 阅读 · 0 评论 -
Redis 分布式锁的正确实现方式( Java 版 )
来源:吴兆锋,wudashan.cn/2017/10/23/Redis-Distributed-Lock-Implement/如有好文章投稿,请点击 → 这里了解详情前言分布式锁一般有三种实现方式:1. 数据库乐观锁;2. 基于Redis的分布式锁;3. 基于ZooKeeper的分布式锁。本篇博客将介绍第二种方式,基于Redis实现分布式锁。虽然转载 2018-01-10 13:56:38 · 292 阅读 · 2 评论 -
使用winHex对RDB和AOF原理进行剖析笔记(10)
一:redis中的两种序列化方式1. RDB 【快照】 【redis默认的启动方式】 dump.rdb2. 配置方法: 指定一下rdb文件的所属目录: dir ./redis/3. 了解save参数的配置《1》触发条件save 900 1save 300 10save 60 10000《2》检测时间# appendfsync alwaysapp原创 2017-07-09 22:52:02 · 319 阅读 · 0 评论 -
Redis中multi,exec,watch,发布与订阅模式命令介绍笔记(9)
一:事务1. redis的目标的是: 简洁,高效,由于事务本身就是一个很复杂的东西,所有我们不能把事务做的太复杂。。。2. multi 事务开始 begin exec 事务执行 commit 二:命令的使用1. multi,exec127.0.0.1:6379> multi OK127.0.0.1:6379> lpush fruits orange原创 2017-07-09 18:00:06 · 436 阅读 · 0 评论 -
SortedSet命令介绍笔记(8)
一:有序集合类型(SortedSet)1. SortedSet(SkipList) 用链表的玩法太做到CURD的logN的复杂度。 看到LogN都会想到树(红黑树,平衡二叉树,Treap)二:简单介绍一些命令1. ZADD key score member 按照score对member进行排序127.0.0.1:6379> zadd fru原创 2017-07-08 23:07:21 · 246 阅读 · 0 评论 -
Set的命令介绍与代码剖析笔记(7)
一:集合类型 1. 应用场景: 交叉并。 O(M+N)2. 集合类型本质上来说是只有key的hash。3. 比hash更节省内存,它的代价就是应用场景比Hash少。二:命令介绍 所有集合的命令都是‘S'打头的。1. SAdd key member 添加数据到集合中 O(1) 127.0.0.1:6379> sadd fruits orang原创 2017-07-08 21:08:54 · 258 阅读 · 0 评论 -
List的命令介绍与源代码剖析(6)
一:列表类型1. 大家一定要知道列表的数据存储是什么??? “双向链表”二:命令介绍1. LPush key value 2. RPush key value3. LPop key4. RPop key5. LLen O(1)6. Lrange key start stop O(N) 7. LRem key count原创 2017-07-08 16:38:29 · 413 阅读 · 0 评论 -
Hash的命令介绍与源代码剖析笔记(5)
一:散列类型 1. 对应编程语言: C# => Dictionary Java => Map二:哈希在dictionary中的存储 dictionary key:string类型 value=> dictionary 1. hset key field value127.0.0.1:6379> hset person name jack(i原创 2017-07-08 15:25:30 · 497 阅读 · 0 评论 -
String命令介绍笔记(4)
一;String类型 1. 数据最大容量是512M。 【网络带宽】static int checkStringLength(redisClient *c, long long size) { if (size > 512*1024*1024) { addReplyError(c,"string exceeds maximum all原创 2017-07-05 22:25:19 · 570 阅读 · 0 评论 -
项目架构之三主三从三Sentinel笔记(13)
一:Sentinel 【哨兵】1. Sentinel是干嘛的呢?? 用于监视master是否正常在线,如果说master挂掉了,sentinel会让slave顶上去。2. 开多少Sentinel适合? 开3个Sentinel,或者说开奇数个,Sentinel的原理就是一直监视着master是否在线, 如果挂掉,sentinel的集群会选举中一个零头的se原创 2017-07-15 23:32:58 · 1144 阅读 · 0 评论 -
redis的主从复制模式笔记(11)
一:主从复制 不光redis有,其他的db也有,比如说mysql,sqlserver优先: 《1》 读写分离,我们洪流被我们redis集群拆分了。【分而治之】 《2》 一定程度上防止系统整体瘫痪。【主了挂了,但是你的程序还是可以select,读写比例大多在1:10,1:8】 《3》 热备份,【阿里云,青云】,热备份+冷备份。缺点原创 2017-07-11 22:42:56 · 369 阅读 · 0 评论 -
redis系统命令源代码剖析笔记(3)
一:Del命令的源码 1.del命令最终都是在dict中删除。 2. 代码执行流程图: 《1》 void delCommand(redisClient *c)《2》 dbDelete(c->db,c->argv[j]) c->db 当前是哪个DB。 c->argv[j] 命令参数【key的name】《3》 dictDe原创 2017-07-04 22:06:22 · 226 阅读 · 0 评论 -
showlog监控慢日志查询以及源码分析笔记(12)
一:redis中的慢日志1. 我们要去找那些阻塞redis查询的命令。2. 为什么这么说呢??? 因为redis是单线程的服务器。二:如何去查看慢命令如何去设置conf,来获取我们要查询的慢日志。1. slowlog-log-slower-than 10000 如果你的命令时间默认超过10ms,那么就会被记录。2. slowlog-max-len 1原创 2017-07-12 22:38:04 · 1025 阅读 · 0 评论 -
redis系统命令简介笔记(2)
一:系统级命令 (不归属于任何一个数据结构) 可以参考官方API,或者http://doc.redisfans.com/1. KEYS pattern 模式匹配。产品的缓存: product+"."+....; => keys product*订单的缓存: order+"."+...; => keys order*set name jack原创 2017-06-29 22:28:46 · 228 阅读 · 0 评论 -
redis的简介和安装笔记(1)
一:安装提示1. VMware 用window系统,装个虚拟机2. CentOS 通过虚拟机装一个centos7系统 二:简介1. 历史和发展 高性能的键值对数据库:(数据结构服务器,数据结构数据库) C# list, hashset, dictionaryJava arraylist原创 2017-06-28 22:28:21 · 323 阅读 · 0 评论 -
Redis五种数据类型介绍
转自http://qifuguang.me/2015/09/29/Redis五种数据类型介绍/Redis的键值可以使用物种数据类型:字符串,散列表,列表,集合,有序集合。本文详细介绍这五种数据类型的使用方法。本文命令介绍部分只是列举了基本的命令,至于具体的使用示例,可以参考Redis官方文档:Redis命令大全字符串类型字符串是Redis中最基本的数据类型,它能够存转载 2016-12-16 10:27:08 · 312 阅读 · 0 评论