随笔分类 -  redis

摘要:1,问题描述 随着业务发展的需要,原单体单机部署的系统被演变化为集群系统后,由于分布式系统多线程、多进程并且分布在不同的机器上,这将使原单机部署情况下的并发控制锁策略失效, 单纯的JAVA API并不能提供分布式锁的功能,为了解决这个问题就需要一种跨 JVM 的互斥机制共享资源的问题,这就是分布式锁 阅读全文
posted @ 2022-02-23 16:59 danny522 阅读(28) 评论(0) 推荐(0) 编辑
摘要:1,问题描述 1)数据库压力变大 服务器崩溃 2) 2,造成原因 在极少的时间内,查询大量key集中过期情况 3,解决方案 1)构建多级缓存框架:nginx缓存+redis缓存+其他缓存(ehcache等)。 2)使用锁或者队列: 用加锁或者队列的方式来保证不会有大量的线程对数据库一次性进行读写,从 阅读全文
posted @ 2022-02-23 16:12 danny522 阅读(30) 评论(0) 推荐(0) 编辑
摘要:1,问题描述 1)数据库访问压力瞬时增加 2)redis 里面并没有出现大量的key过期 3)redis运行正常 2,问题原因 redis里面的某个key 过期了,大量访问使用这个key 3,解决方案 key可能会在某个时间点被超高并发的访问,是一种非常“ 热点 ”的数据,这个时候需要考虑一个问题: 阅读全文
posted @ 2022-02-23 15:59 danny522 阅读(32) 评论(0) 推荐(0) 编辑
摘要:1,表现: 1,应用服务器压力变大了 2,缓存命中率低 3,一直查询数据库 2,造成原因 1)redis 查询不到数据库 2) 大量非正常url访问 ( 比如遭到攻击 ) 3,解决方案 一个一定不存在缓存及查询不到的数据,由于缓存是不命中时被动写的,并且出于容错考虑,如果从缓存查不到数据则不写入缓存 阅读全文
posted @ 2022-02-23 15:39 danny522 阅读(29) 评论(0) 推荐(0) 编辑
摘要:1,什么是主从复制 主机数据更新后根据配置和策略,自动同步到备机的 master/slaver 机制,Master 以写为主,Slave 以读为主 2,能干嘛 1)读写分离性能扩展, 2)容灾快速恢复 3,搭建一个1主2从主从复制 1),创建一个文件夹/myredis 2)复制redis.conf文 阅读全文
posted @ 2022-02-22 16:58 danny522 阅读(34) 评论(0) 推荐(0) 编辑
摘要:1,用哪个好 官方推荐两个都启用 如果数据不敏感,可单独使用RDB 但不建议单独使用AOF,因为可能会出现BUG 如果只是做纯内存缓存,可以两个都不用 2,官方建议 1)RDB持久化方式能够在指定的时间间隔能对你的数据进行快照储存 2)AOF 持久化方式记录每次对服务器写的操作,当服务器重启的时候会 阅读全文
posted @ 2022-02-22 14:53 danny522 阅读(264) 评论(0) 推荐(0) 编辑
摘要:1, AOF(Append Only File) 是什么 以日志的形式来记录每个写操作( 增量保存 ),将 Redis 执行的所有写指令记录下来( 读操作不记录 ), redis启动只初会读取改文件重新构建数据,换言之,redis 重启的话就根据日志文件的内容将写指令从前到后执行一次已完成数据的恢复 阅读全文
posted @ 2022-02-22 12:01 danny522 阅读(52) 评论(0) 推荐(0) 编辑
摘要:1,是什么 在指定的时间间隔内将内存中的数据集快照写入磁盘,也就是行话讲的Snapshot快照, 它恢复时是将快照直接读取到内存中 2,备份是如何执行的 Redis会单独创建( fork )一个子进程来进行持久化,会先将数据写入到一个临时文件中,待持久化过程都结束了, 再用这个临时文件提换上次持久化 阅读全文
posted @ 2022-02-22 11:04 danny522 阅读(31) 评论(0) 推荐(0) 编辑
摘要:Redis事务是一个单独的隔离操作:事务中的所有命令都会序列化,按顺序地执行,事务在执行的过程中,不会被其他客户端发过来的请求所打断。 1,Multi、Exec、discard 从输入Multi开始,输入的命令都会依次进入命令队列中,但不会执行,直接输入Exec后,Redis会将之前队列中的命令依次 阅读全文
posted @ 2022-02-21 16:20 danny522 阅读(51) 评论(0) 推荐(0) 编辑
摘要:1,简介 2维坐标,就是地图上的经纬度。提供了经纬度设置,查询,范围查询,距离查询,经纬度hash等常见操作。 2,命令 geoadd <key> <longitude> <latitude> <member> [ longtitude latitude member ... ] 添加地理位置,经度 阅读全文
posted @ 2022-02-18 15:24 danny522 阅读(33) 评论(0) 推荐(0) 编辑
摘要:1,简介 主要用于解决基数问题(统计不重复元素个数的问题) 2,命令 pfadd <key> <element> [element...] 添加指定元素到HyperLogLog pfcount <key> [key...] 计算HLL的近似基数,可以计算多个 HLL pfmerge <destkey 阅读全文
posted @ 2022-02-17 17:37 danny522 阅读(15) 评论(0) 推荐(0) 编辑
摘要:1,简介 现代计算机使用二进制(位)作为信息的基本单位,1字节等于8位, 合理的使用操作位能够有效的提高内存的使用率和开发效率: Redis提供了 Bitmaps 这个“数据类型” 可以实现对位的操作: 1)Bitmaps 本身不是一种数据类型,实际上他就是字符串(key-value)但是它可以对字 阅读全文
posted @ 2022-02-17 17:28 danny522 阅读(51) 评论(0) 推荐(0) 编辑
摘要:1,什么是发布和订阅 Redis 发布订阅 (pub/sub)是一种消息通信模式,发送者(pub)发送消息,订阅者(sub)接收消息 Redis 客户端可以订阅任意数量的频道 2,发布订阅命令 1)打开一个客户端订阅channel11 subscribe channel11 2)打开另一个客户端,给 阅读全文
posted @ 2022-02-17 16:06 danny522 阅读(22) 评论(0) 推荐(0) 编辑
摘要:1,unit 单位 配置大小单位,只支持 bytes,不支持 bit 大小写不敏感 2,include 包含文件 3,network bind 127.0.0.1 表示只能本地连接redis,不能远程连接 protected yes 表示开启保护模式,不支持远程访问 port 6379 端口号 tc 阅读全文
posted @ 2022-02-16 17:14 danny522 阅读(40) 评论(0) 推荐(0) 编辑
摘要:1,简介 Redis 有序集合zset 与普通集合set 非常相似,是一个没有重复元素的字符串集合 不同之处是有序集合的每个成员都关联了一个评分(score),这个评分被用来按照从低分到高分的方式排列集合中的成员, 集合的成员是唯一的,但是评分可以重复 因为元素是有序的,所以你也可以很快的根据评分, 阅读全文
posted @ 2022-02-16 15:42 danny522 阅读(300) 评论(0) 推荐(0) 编辑
摘要:1,简介 Redis Hash是一个键值对集合 Redis hash是一个string类型的filed 和 value 的映射表,hash特别适合储存对象 类型java里面的Map<String,Object> 2,常用命令 hset <key> <field> <value> 未哈希表的 fiel 阅读全文
posted @ 2022-02-16 15:23 danny522 阅读(273) 评论(0) 推荐(0) 编辑
摘要:1,简介 Redis Set提供的功能和List类似,是一个列表的功能,特殊之处在于set是可以自动排重的, 当你需要储存一个列表数据,又不希望出现重复数据是,set是一个很好的选择, 并且set提供了判断某个成员是否在set集合内的重要接口, Redis的set是string类型的无序集合,它底层 阅读全文
posted @ 2022-02-16 14:43 danny522 阅读(225) 评论(0) 推荐(0) 编辑
摘要:1,介绍 单键多值 redis列表是简单的字符串列表,按照插入顺序排序,你可以添加一个元素到表的头部或尾部 它的底层实际上是一个双向链表,对两端的操作性能很高,通过索引下标的操作中间的节点性能会较差 2,常用命令 lpush/rpush <key> <value> <value1> <value2> 阅读全文
posted @ 2022-01-28 17:14 danny522 阅读(72) 评论(0) 推荐(0) 编辑
摘要:1,简介 String是redis最基本的数据类型,一个key对应一个value String类型是二进制安全的,意味着redis的String可以包含任何数据,比如 图片 序列化的对象 一个redis中,字符串value最多可以512M 2,常用命令 set <key> <value> 添加/修改 阅读全文
posted @ 2022-01-28 10:45 danny522 阅读(85) 评论(0) 推荐(0) 编辑
摘要:keys * 查看当前库所有key set key value 设置数据 例如: set k1 ev exists key 判断某个key是否存在 例如:exists k1 type key 查看key的数据类型 例如:type k1 del key 删除key数据 例如:del k1 unlink 阅读全文
posted @ 2022-01-27 17:29 danny522 阅读(41) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示