![](https://img-blog.csdnimg.cn/573376cd58234ad9a45442d17b37df83.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
redis
redis相关的内容
尧、木子
想分享一些东西给大家,如果我的分享帮助到了你,也希望你给我个赞,让我知道
展开
-
redis分布式限流
redis进行限流实现原创 2023-05-06 12:39:48 · 237 阅读 · 0 评论 -
redis搭建集群
redis集群,顾名思义的就是由多台redis服务器,作为一个整体,为系统进行服务,redis集群是一个无中心化的一种服务模式,在redis集群中,由多组主从模式的简单集群共同组件成一个大的redis集群,集群中共同维护16384个slot(插槽),相对比而言,redis集群比主从复制,哨兵模式增加了写的能力,容错性能更强。下边开始搭建1、准备配置文件redis6379.conf、redis6380.conf、redis6381.conf、redis6389.conf、redis6390.conf、red原创 2022-02-13 10:23:45 · 1385 阅读 · 0 评论 -
redis搭建哨兵模式
redis哨兵模式,是指针对主从复制模式的一种监控状态的模式,在redis主从模式中,若主机发生故障而导致宕机时候,需要人为干预,重启主机服务,这样是很不方便的,而哨兵则能很好的解决这个问题,哨兵可以对主从复制模式的主机进行监控,如果发生故障,则可以通过内部机制将其中的一个从机作为主机继续进行服务,选举主机遵从以下原则:redis配置文件中参数:replica-priority 100(优先级,数字越低,优先级越高)从机的数据越符合主机数据,优先级越高redis启动的服务,会随机生成一个40位的id原创 2022-02-12 20:06:49 · 2225 阅读 · 0 评论 -
redis主从复制
什么是主从复制主机数据更新后,根据配置和策略,自动同步到备机的master/slaver机制,Master以写为主,Slaver以读为主。可以使用读写分离,性能扩展,容灾快速恢复1、复制三个配置文件出来,分别为redis-63791.conf、redis-63792.conf、redis-63793.conf内容为:引入原来的配置文件include ./redis.conf#设置pid文件路径pidfile ./redis_63791.pid#设置启动端口号,三台端口号不同port 63原创 2022-02-11 22:15:01 · 473 阅读 · 0 评论 -
redis模拟秒杀解决库存剩余问题(三)
在模拟秒杀第二篇中,我们使用了redis事务,并用watch进行监控,虽然将超卖问题解决了,但是引出了一个新的问题——库存剩余。其中原因就是watch的乐观锁导致的,版本不一致,不执行事务。现在使用另外一个方案(即LUA脚本)进行解决。LUA脚本是一个嵌入式的脚本,不能独立运行,需要其他的程序进行调用,本身是用C语言进行编写的,调用redis执行具有原子性。在秒杀过程中,将redis的库存判断,秒杀过程,全部交给脚本实现,java代码中,只做调用实现代码如下:import com.lixl.red原创 2022-02-10 13:37:56 · 1131 阅读 · 2 评论 -
redis模拟秒杀解决超卖问题(二)
在第一次的版本中,使用redis模拟秒杀,最终结果,单个线程可以执行,使用了阿帕奇的ab工具,进行了压力测试后,出现了超卖问题,本代码中,针对此问题进行解决。在redis中,提供了事务的概念,redis的事务在执行过程中,不会被打断,multi开启事务,在此之后的才做将被添加至操作队列中,如图添加完成后,可以使用exec进行执行如果想放弃,则可以使用discard取消执行的事务要想完成秒杀超卖的问题,当然还有一个非常重要的点,redis的watch方法,它是一个乐观锁的命令,会未监控的key增原创 2022-02-10 12:23:26 · 1512 阅读 · 0 评论 -
使用redis商品秒杀模拟(一)
前边整合了springboot使用redis,下边在此基础上,进行秒杀案例的模拟。案例中,通过设置商品数量,以及秒杀成功用户,进行实现。随机生成用户id工具类import java.util.Random;/** * 简单的使用random类生成数字,作为用户id * @author lixl * @description * @date 2022/2/10 */public class RandomUtils { private static Random random =原创 2022-02-10 10:35:43 · 932 阅读 · 0 评论 -
springboot+redis+commons-pool2整合
pom文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/x原创 2022-02-09 11:41:08 · 1703 阅读 · 0 评论 -
springboot整合redis
springboot 依赖配置文件<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.原创 2022-02-09 10:28:01 · 140 阅读 · 0 评论 -
Redis zset操作
Redis有序集合zset与普通的set非常相似,是一个没有重复元素的字符串集合。不同之处是有序集合的每一个成员都关联了一个评分(score) ,这个评分被用来按照最低分到最高分的方式排序集合中的成员,集合的成员是唯一的,但是评分可以重复因为元素是有序的,所以你可以很快的根据评分或者次序来获取一个范围的元素访问有序集合中间元素也是非常快的,因此你能够使用有序集合作为一个没有重复成员的智能列表底层数据结构zadd key score1 value1 score2 value2 … 可以添加多个元素到原创 2022-02-04 22:27:05 · 1524 阅读 · 0 评论 -
Redis hash类型操作
Redis hash是一个键值对集合Redis hash是一个string类型的 field 和 value 的映射表,hash特别适合用于存储对象,类似java中的Map<String,Object>,底层使用的存储为ziplist和hashtable两种,当hash中的数据少的时候,使用ziplist,多了使用hashtablehset key field value 添加数据hget key field 获取数据hmset field1 value1 field2 value2原创 2022-02-04 22:26:19 · 880 阅读 · 0 评论 -
redis 中的set操作相关
基础知识redis set对外提供的功能与list相同,特殊之处,set可以自动排重,set是String类型的无序集合,它底层是一个value为null的hash表,所以添加、删除、查找的时间复杂度为O(1),它是一个dict字典表,字典表是由hash表实现的,java中的hashSet内部也是一个HashMap,只不过所有的value都指向同一个对象,Redis的set结构也是一样的,它的内部也使用了hash结构,所有的value都指向同一个内部值操作命令sadd key value1 value原创 2022-02-03 18:50:06 · 668 阅读 · 0 评论 -
Redis的list相关操作介绍
基础知识list是一种单键多值的操作,列表是简单的字符串列表,可以按照插入循序排序,可以在元素头部插入,也可以在元素尾部插入,底层是双向连表实现,两端操作效率很高,中间操作效率低list底层的数据结构是一个quickList(快速连表),首先列表中元素较少的情况下,申请一块连续的内存,这个结构是ziplist(压缩连表),随着数据的增加,则会形成多个ziplist,并由多个ziplist形成quicklist,多个ziplist之间是双向连表,使用多个ziplist的好处是,既能满足快速的插入和删除,又原创 2022-02-03 18:48:58 · 439 阅读 · 0 评论 -
redis字符串String相关操作
基础知识介绍String 类型是一个二进制安全的类型 ,意味着Redis的String可以保函任何数据,比如jpg图片,或者序列化对象String类型是Redis最基本的数据类型,一个Redis字符串Value最多是512M,String的数据结构是简单的动态字符串,是可以修改的字符串,内部结构实现上,类似java的arraylist,采用预分配冗余空间的方式来减少内存的频繁分配,在字符串存储时候,一般申请的空间都大于实际长度,如果需要扩容的时候,在小于1M的时候,扩容为成倍扩容,超过1M时候,最多扩原创 2022-02-03 18:42:58 · 993 阅读 · 0 评论 -
redis的key关键字相关使用介绍
keys * 查看当前库中所有的keyexists key 判断某个key是否存在type key 查看key是什么数据类型del key 删除指定的key数据(直接删除数据)unlink key 根据value选择非阻塞删除(执行命令的时候,并没有真正删除,在后续中,再真正的删除)expire key 设置数据的有效时间 以秒为单位ttl key 查看key的过期时间 -1 表示永不过期 -2 表示已过期dbsize 查看当前库中有多少数量的keyflushdb 清空当前库中的所有内容f原创 2022-02-03 18:41:19 · 447 阅读 · 0 评论 -
redis基础知识储备
Redis概述redis是一个开源的key-value存储系统和Memcached类似,它支持存储的value类型相对较多redis支持的数据类型:字符串(String)、列表(list)、集合(set)、哈希结构(hash)、有序集合(zset),在redis6新版本中,添加了对Bitmaps、setbit、HyperLogLog类型的支持这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的在此基础上,Redis支持各种原创 2022-02-03 16:59:33 · 399 阅读 · 0 评论 -
centos7 安装redis
一、安装gcc依赖由于 redis 是用 C 语言开发,安装之前必先确认是否安装 gcc 环境(gcc -v)如果没有安装,会报错未找到命令。执行以下命令进行安装[cs3@localhost Desktop]$ yum install -y gcc看到一下图片,即代表安装完成。安装过程中,遇到一个小的提示:You need to be root to perform this command需要使用root用户才可以,使用su切换用户。二、下载并解压安装包redis安装包可以到官网选择相原创 2022-01-30 13:16:19 · 632 阅读 · 0 评论