
redis
文章平均质量分 85
潼筱果
这个作者很懒,什么都没留下…
展开
-
Redis Cluster集群
简介集群模式是实际使用最多的模式。Redis Cluster是社区版推出的Redis分布式集群解决方案,主要解决Redis分布式方面的需求,比如当遇到单机内存,并发和流量等瓶颈时,Redis Cluster能祈祷很好的负载均衡的目的。为什么使用redis-cluster?为了在大流量访问下提供稳定的业务,集群化是存储的必然形态未来的发展趋势肯定是云计算和大数据的紧密集合只有分布式架构能满足要求集群描述Redis集群搭建方案:1、Twitter开发的twemproxy2、豌豆荚开发的cod原创 2020-07-16 20:52:25 · 2830 阅读 · 0 评论 -
Redis哨兵模式
简介Redis-Sentinel(哨兵模式)是高可用解决方案,当redis在做master-slave的高可用方案时,加入master宕机,redis本身以及其他客户端都没有实现自动进行主备切换,而redis-sentinel本身也是独立运行的进程,可以部署在其他与redis集群可通讯的机器中监控redis集群有了主从复制的实现之后,如果想从服务器进行监控,可以采用哨兵机制,监控Redis系统的运行状况哨兵模式特点1、不停地监控redis是否按照预期良好地运行2、如果发现某个redis节点运行出原创 2020-07-06 15:31:05 · 249 阅读 · 0 评论 -
Redis主从复制
电商网站上的商品,一般都是一次上传,无数次浏览的,也就是多读少写主从复制一个Redis服务可以有多个该服务的复制品,这个Redis服务成为Master,其他复制称为Slaves一台Redis服务器作为主库(Master),其他三台作为从库(Slave),主库只负责写数据,每次有数据更新都将更新的数据同步到它所有的从库,而从库只负责读数据。这样设计有两个好处:1、读写分离,不仅可以提高服务器的负载能力,并且可以根据读请求的规模自由增加或者减少从库的数量2、数据被复制成了好几份,就算有一台机器发生故原创 2020-07-06 15:05:48 · 213 阅读 · 0 评论 -
Redis的内存维护策略
Redis作为优秀的中间缓存键,时常会存储大量的数据,即使采取了集群部署来动态扩容,也应该即时的整理内存,维持系统性能Redis两种清理内存的解决方案1、为数据设置超时时间设置过期时间expire key time(以秒为单位)–常用方式setex(String key,int seconds,String value)–字符串独有的方式除了字符串自己独有的设置过期时间的方法外,其他方法都需要依靠expire方法来设置时间如果没有设置时间,那缓存就是永不过期如果设置了过期时间,只有又想让缓存原创 2020-07-06 14:19:50 · 150 阅读 · 0 评论 -
Redis简介
概念什么是Redis?Redis 是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存且可持久化的日志型、key-Value数据库,并提供多种语言的APIRedis 与其他 key - value 缓存产品有以下三个特点:Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。Redis不仅仅支持简单的key-value类型的数据,同时还提供list,set,原创 2020-07-06 12:34:16 · 169 阅读 · 0 评论 -
Redis缓存与数据一致性
一、实时同步对强一致要求比较高的,应采用实时同步方案,即查询缓存查询不到再从DB查询,保存到缓存;更新缓存时,先更新数据库,再将缓存的设置过期(建议不要去更新缓存内容,直接设置缓存过期)。@Cacheable:查询时使用,注意Long类型需转换为Sting类型,否则会抛异常@CachePut:更新时使用,使用此注解,一定会从DB上查询数据@CacheEvict:删除时使用;@Caching:组合用法非实时同步实时:一方修改,另一方同步修改非实时:一方修改,另一方不需要同步修改一个文章,一分原创 2020-07-06 12:07:51 · 594 阅读 · 0 评论 -
Redis持久化机制
什么是Redis持久化?持久化就是把内存的数据写到磁盘中,防止服务宕机导致内存数据的丢失。数据存储:内存:高效、断电(关机)内存数据会丢失磁盘:读写速度慢于内存,断电数据不会丢失Redis持久化存储的两种方式:RDB(默认)和AOF,RDB一定时间存储文件,AOF默认每秒去存储历史命令。Redis是支持持久化的内存数据库,redis需要经常将内存中的数据同步到硬盘来持久化RDBRedis DataBase的缩写,功能核心函数rdbSave(生成RDB文件)和rdbLoad(从文件加载内存)两原创 2020-07-06 10:43:44 · 143 阅读 · 0 评论 -
Redis事务
简介Redis事务可以一次执行多个命令,按顺序地串行化执行,执行中不会被其他命令插入,不允许加塞执行。Redis事务可以一次执行多个命令(允许在一次单独的步骤中执行一组命令),并且带有以下两个重要的保证:1、Redis会将一个事务中的所有命令序列化,然后按顺序执行2、执行中不会被其他命令插入,不允许出现加塞行为执行原理1、批量操作在发送EXEC命令前被放入队列缓存。2、收到EXEC命令后进入事务执行,事务中任意命令执行失败,其余的命令依然被执行。3、在事务执行过程中,其他客户端提交的命令不会原创 2020-07-06 10:10:58 · 182 阅读 · 0 评论 -
Redis多数据库
Redis下,数据库是由一整数索引标识,而不是由一个数据库名称,默认情况下,一个客户端连接到数据库0。redis配置文件中database参数控制数据库总数:database 16 //(从0到15)切换数据库select 数据库索引移动数据库(将当前key移动到另一个库)move key名称 数据库索引清空数据库1、清除当前数据库中所有keyflushdb2、清除整个redis的数据库所有keyflushall...原创 2020-07-06 09:08:33 · 131 阅读 · 0 评论 -
Redis消息通信模式之发布订阅
简介Redis发布订阅(pub/sub)是一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接受消息。Redis客户端可以订阅任意数量的频道。常用命令订阅频道1、订阅给定的一个或多个频道的信息SUBSCRIBE channel [channel1...]2、订阅一个或多个符合给定模式的频道PSUBSCRIBE pattern [pattern1...]发布频道1、将消息发送到指定频道PUBLISH channel message退订频道1、退订给定的频道UNSU原创 2020-07-05 16:34:41 · 299 阅读 · 0 评论 -
Redis数据结构之HyperLogLog
简介redis在2.8.9版本添加 了HyperLogLog结构,Redis HyperLogLog是用来做基数统计的算法,HyperLogLog优点是,在输入元素的数量或者体积非常大时,计算基数所需的空间总是固定的,并且是很小的。在redis里面,每个HyperLogLog键只需要花费12kb内存,就可以计算接近2^64个不同元素的基数,这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比,但是因为HyperLogLog只会根据输入元素来计算基数,而不会存储输入元素本身,所以HyperLogLog原创 2020-07-05 16:10:57 · 217 阅读 · 0 评论 -
Redis数据类型之ZSet类型
定义有序集合(sorted set)1、Redis 有序集合和集合一样,也是String类型元素的集合,且不允许有重复的成员。2、不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。3、有序集合的成员是唯一的,但分数(score)却可以重复。4、集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。 集合中最大的成员数为 2^32 - 1 ( 每个集合可存储40多亿个成员)。常用语法命令赋值:向有序集合添加一个或多个成员,原创 2020-07-04 19:27:54 · 340 阅读 · 0 评论 -
Redis数据类型之Set类型
定义Redis抵御Set是String类型的无序集合,集合成员是唯一的,无重复数据,唯一且数据无序。redis中集合是通过哈希表实现的,set是通过hashtable实现的,集合中最大成员数为2^32-1(每个集合可存储40多亿个成员),类似于java中的HashTable集合。常用语法命令赋值向集合添加 一个或多个成员SADD key member1 [member2]取值1、获取集合的成员数SCARD key2、返回集合中的所有成员SMEMBERS key3、判断membe原创 2020-07-04 14:51:46 · 178 阅读 · 0 评论 -
Redis数据类型之List类型
定义List类型是一个链表结果的集合,其主要功能有push、pop、获取元素等,List类型是一个双向链表的结构,可以实现在集合的头部或尾部添加 和删除元素,List即可以作为栈,又可以作为队列,满足大多数需求按照插入顺序排序,可以添加一个元素到列表的头部或者尾部,一个列表最多可以包含2^32-1个元素(每个列表超过40亿个元素)类似于Java中的LinkedList常用语法命令赋值1、将一个或多个值插入到列表头部(从左侧添加)LPUSH key value1 [value2]2、将一个或多原创 2020-07-02 16:11:44 · 347 阅读 · 0 评论 -
Redis数据类型之Hash类型
定义Redis hash 是一个string类型的field和value的映射表,hash特别适合用于存储对象。 Redis 中每个 hash 可以存储 2^32 - 1 键值对(40多亿)可以看成具有KEY和VALUE的MAP容器,该类型非常适合于存储值对象的信息,该类型的数据仅占用很少的磁盘空间(相比于JSON)常用语法命令赋值:1、为指定的KEY,设定FILD/VALUEHSET KEY FIELD VALUE 2、同时将多个 field-value (域-值)对设置到哈希表 key原创 2020-07-02 14:49:25 · 255 阅读 · 0 评论 -
Redis数据类型之String类型
定义String是redis最基本的类型,一个key对应一个value。String类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象 。String类型是Redis最基本的数据类型,一个键最大能存储512MB。常用语法命令赋值:1、Redis SET 命令用于设置给定 key 的值。如果 key 已经存储值, SET 就覆写旧值,且无视类型SET KEY_NAME VALUE2、只有在 key 不存在时设置 key 的值。Setnx(SET原创 2020-07-02 14:26:23 · 216 阅读 · 0 评论