redis
redis
成长的小牛233
一个很菜,仍然热爱技术热爱生活的程序猿
展开
-
redis stream 实现生产者消费者模式
@Test public void producer() throws InterruptedException { while (true){ String msgKey = "it"; HashMap<String, String> map = new HashMap<>(); map.put("name", UUID.randomUUID().toString())...原创 2020-08-23 19:39:00 · 812 阅读 · 0 评论 -
jedis StreamEntryID参数解释
//$ 在给定Stream中已经包含的最大ID,在xread、xcreategroup中标识消费着只能消费最新消息StreamEntryID.LAST_ENTRY;“>” 在消费者组的上下文中使用,在xread、xreadgroup总标识消费未消费过的消息StreamEntryID.UNRECEIVED_ENTRY;如果传入的为null则表示0-0从头开始读jedis.xgroupCreate(stream, group, null, true);...原创 2020-08-21 15:42:30 · 812 阅读 · 0 评论 -
redis stream学习总结
挑战 Kafka!Redis5.0 重量级特性 Stream 尝鲜原创 2020-08-20 19:58:56 · 869 阅读 · 0 评论 -
本地缓存之LIFO、LRU、FIFO、LFU实现
LRU算法全称 The Least Recently Used,最近最久未使用算法,是一种常见的缓存算法,在很多分布式缓存系统(Redis、Memcached等)使用。算法核心如果一个数据在最近一段时间没有被访问到,那么可以认为在将来它被访问的可能性也很小。当缓存满时,将最久未使用的数据置换掉,也就是首先淘汰最长时间未被使用的。实现最简单做法是用数组+时间戳,不过效率太低,因此我们用双向链表LinkedList + HashMap 实现(链表用来表示位置,哈希表用来存储和查找),在Java中对应原创 2020-08-04 13:51:22 · 1166 阅读 · 0 评论 -
本地缓存之Guava简单使用
使用场景随着互联网用户越来越多,并发量、吞吐量越来越大数据库存储原创 2020-08-03 16:24:44 · 1280 阅读 · 0 评论 -
教你如何使用redis分布式锁
方法一:利用set nx命令实现分布式锁 Jedis jedis = new Jedis("127.0.0.1", 6309); public boolean getLock(String lockKey, String requestId, int expireTime) { //NX:保证互斥性 //hset 原子性操作 只要lockKey有效 则说明有进程在使用分布式锁 // key:lockKey value:requestId N原创 2020-07-31 16:45:05 · 1070 阅读 · 1 评论 -
如何利用redis实现秒杀系统
利用Watch实现Redis乐观锁乐观锁基于CAS(Compare And Swap)思想(比较并替换),是不具有互斥性,不会产生锁等待而消耗资源,但是需要反复的重试,但也是因为重试的机制,能比较快的响应。因此我们可以利用redis来实现乐观锁。具体思路如下:利用redis的watch功能,监控这个redisKey的状态值获取redisKey的值创建redis事务给这个key的值+1然后去执行这个事务,如果key的值被修改过则回滚,key不加1场景:开启20个线程,模拟100个用户秒杀原创 2020-07-30 13:31:56 · 755 阅读 · 0 评论 -
redis主从搭建和分片集群搭建
redis主从搭建目标搭建一主一从:下载安装redis:两台机器都需要操作redis下载地址 https://redis.io/downloadtar -zxvf redis-5.0.5.tar.gzmv redis-5.0.5 redismakecd redis/srcmake installcd ..mkdir binmv src/redis* bin/修改master redis.conf:#开启守护线程,后台启动daemonize yes # 开启远程访问bin原创 2020-07-27 21:59:03 · 482 阅读 · 0 评论 -
【美文保存】nosql数据库对比以及如何巧妙利用redis来提高效率?
1. MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访问,很多公司都曾经使用过这样的架构,但随着业务数据量的不断增加,和访问量的持续增长,我们遇到了很多问题: 1.MySQL需要不断进行拆库拆表,Memcached也需不断跟着扩容,扩容和维护工作占据大量开发时间。 2.Memcach...转载 2019-02-18 20:45:50 · 290 阅读 · 0 评论 -
jedisPool的使用
遇到的问题:一开始做项目一直用的是jedis对象连接,今天发现自己上线的项目抛出了异常:JedisConnectionException: java.Net.SocketTimeoutException: Read timed和和java.lang.ClassCastException: [B cannot be cast to java.util.List。异常解释:jedis的默认读取时...原创 2018-12-10 16:24:00 · 32941 阅读 · 3 评论 -
JedisConnectionException: java.Net.SocketTimeoutException: Read timed
jedis操作:https://blog.csdn.net/shuaiOKshuai/article/details/23266091jedisPool操作:https://blog.csdn.net/gongxinju/article/details/53909239原创 2018-12-10 15:36:11 · 2418 阅读 · 0 评论 -
java 操作redis
//连接redis ,redis的默认端口是6379Jedis jedis = new Jedis ("localhost",6379); //验证密码,如果没有设置密码这段代码省略jedis.auth("password"); jedis.connect();//连接jedis.disconnect();//断开连接Set<String> key...转载 2018-12-20 17:36:02 · 187 阅读 · 0 评论 -
redis优秀文章
https://www.cnblogs.com/PatrickLiu/tag/Redis/原创 2018-09-26 16:20:46 · 191 阅读 · 0 评论 -
redis集群搭建与配置
redis集群搭建与配置原创 2018-09-25 18:46:51 · 138 阅读 · 0 评论 -
redis笔记
redis安装完后要make然后在make install最后在usr/local/bin目录下开启redis 登陆方式:1.redis:redis-cli -h 地址 -p 端口号 -a 密码 2.先进入redis再加密码:auth 密码 redis-cli shutdown:关闭服务 redis.conf中的requirepass foobared:用来设置密码 eg:requirep...原创 2018-09-04 18:15:31 · 148 阅读 · 0 评论 -
redis参考优秀文章
文章地址 写的很详细,做个记录原创 2018-08-23 12:26:40 · 339 阅读 · 0 评论