![](https://img-blog.csdnimg.cn/20190927151026427.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
redis
redisson
.net core game
致力于.net core全栈游戏服务器开发
展开
-
Redisson设置json作为序列化格式增强可读性(不要用默认的jdk导致是二进制不可读)
【代码】Redisson设置json作为序列化格式增强可读性。原创 2024-05-16 15:03:21 · 328 阅读 · 0 评论 -
centos下重启redis
磁盘满了,发现连接不上redis了,我们重启一下。原创 2024-05-09 16:55:28 · 161 阅读 · 0 评论 -
windows下设置redis为开机启动
3)此电脑->管理->服务和应用程序 // 也就是桌面上那个文件夹。找到Redis,修改为自动启动。2)注册Redis服务。原创 2024-03-23 12:39:08 · 145 阅读 · 0 评论 -
【排行榜】1.控制台 2.lettuce版本 3.Redisson
这次游戏中台采用lettuce的zset完成游戏内的本服和跨服排行榜,因此写一下案例。原创 2024-01-20 17:07:35 · 387 阅读 · 0 评论 -
redisson当mysql缓存的实际使用案例
由于我们线上用的都是使用nginx+多个springboot进程组成的集群,因此,本地缓存是没办法使用的。1.先查询 redisson中的数据,如果没有,则从mysql中加载,加载到,则设置到redisson中。3.修改的话,先修改redisson中的数据,然后使用异步的线程池去异步修改mysql中的数据。也就是:看起来redisson中的是同步的操作,mysql则是异步的操作。2.缓存必须设置过期时间。原创 2023-10-07 16:39:29 · 63 阅读 · 0 评论 -
【redisson学习笔记】
突然想起来,其实我不需要去编译源码啊,直接关联起来源码不就可以调试了嘛。所以,我关联了源码就开始了调试,非常方便。本来想直接用maven编译源码, 却发现各种错误,主要是maven的编译插件版本问题。2)然后用maven包方式引入。原创 2023-09-29 11:19:05 · 354 阅读 · 0 评论 -
【pipeline合并多个IO操作为1次】1.一次获取自己100个好友玩家的信息 2.提升大约24倍
1)未使用pipelinepackage org.example;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;public class Test1 { public static void main(String[] args) { JedisPool jedisPool = new JedisPool("127.0.0.1", 6379); try (J原创 2021-07-11 23:53:45 · 163 阅读 · 0 评论 -
[缓存实战之string] 1.mysql连接池druid 2.jedis连接池JedisPool 3.ObjectMapper转List对象为json 4.读取resources下的配置文件
JedisPoolUtilspackage cn.itcast.web.servlet;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;import java.io.IOException;import java.io.InputStream;import java.util.Properties;/**原创 2020-05-12 00:17:52 · 478 阅读 · 0 评论 -
HSETNX KEY_NAME(模块名) FIELD(工会标识) VALUE(值) 用法
前缀都是guild_field如果重复,那么就会失败。nx指的是field不能重复。因此可以用于检查这个工会的名字是否已经有了。原创 2022-07-26 15:13:18 · 119 阅读 · 0 评论 -
【set实现好友功能】 1.增:sadd 2.删:srem、3.查:smembers 4.根据返回值判断操作成功的判断(1成功 0失败)
|-- pom.xml |-- src | |-- main | | ...原创 2021-09-05 13:32:09 · 282 阅读 · 0 评论 -
【Redis实现分布式锁】1.set加锁 2.解锁(是否自己加的锁和真正解锁代码2个操作的原子性问题需用lua脚本解决)
jedis.set(String key, String value, String nxxx, String expx, int time)原创 2021-06-11 12:21:05 · 321 阅读 · 1 评论 -
【2种redis集群的理解】1.cluster的分片模式(槽位无关可多线程计算,推荐) 2.stencil(哨兵) master/slave模式(其它备份不能多线程,废弃)
1)stencil 集群 + master/slave 模式这种stencil属于监控节点,本身也是一个集群,使用raft协议进行选出stencil,然后通过stencil进行选择一个主redis,其余的redis是从节点,作为高可用的备份。2)cluster集群这个是redis自带的集群模式,有一定的限制,有些命令不可用。 基于hash槽,但是可以多个redis实例共同维护一份数据,这样子相当于可以有多个线程用于计算。这种模式,其实已经可以摒弃掉stencil了。...原创 2021-12-13 15:16:57 · 245 阅读 · 0 评论 -
【redis发布订阅实战】1.发布的ID+是序列化后的字符串 2.通过id解析出结果,进行处理
pom.xml <dependencies> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.68</version> </dependency>原创 2022-03-19 18:10:59 · 891 阅读 · 0 评论 -
string(set、get)、hash(hset、hget、hgetAll)、list(lpush、lrange、lpop)、set(sadd、smembers)、zset(zadd、zrange)
package cn.itcast.jedis.test;import org.junit.Test;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;import java.util.List;import java.util.Map;import java.util.Set;public class Jed.原创 2020-05-11 18:56:02 · 267 阅读 · 0 评论 -
【redis list实现消息队列】
1)redis准备启动服务器./src/redis-server redis.config启动客户端 ./src/redis-client2)JedisPoolUtils.javapackage org.example.mq;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;import jav..原创 2021-01-29 19:10:56 · 548 阅读 · 0 评论 -
Reactor与多线程架构设计1.Redis 6.0 IO多线程方案 2.半同步半异步设计模式
lee老师1.从0到1设计高并发的系统 单机服务上面: cpu 内存 IO(性能影响很大,因为它很慢,1/100) 多进程 线程池 read、write IO Reactor的设计模式2.nginx源码很NB,如何学习? 1.了解人家的设计方案 2.当然还有语言、数据结构等细节 3.把框框图转化为代码,如: redis 6.0的源码3.reactor...原创 2021-05-01 05:40:56 · 438 阅读 · 1 评论 -
【redis事务的使用场景】1.工会
1.因为:要保证2个操作合并到一起的原子性,因此有人请求加入工会,必然是:先查询工会是否满了,不满则加入。 如果在一个Controller中处理,其实不是原子的,因此需要把“是否满” “加入”,这2个操作作为原子操作。 因此可以使用redis的事务机制。...原创 2022-03-05 11:08:20 · 556 阅读 · 1 评论 -
【redis环境搭建】1.下载 2.编译 3.脚本 4.gui客户端 5.清空数据库 6.停止服务器 7.备份与还原
1)下载https://redis.io/download2)编译make3)开始启动redis/Users/lewangame/Documents/softwares/redis-4.0.11下面建立文件:1.服务端启动脚本 start_redis_server.sh./src/redis-server redis.conf2.客户端启动脚本start_red...原创 2018-05-14 23:48:13 · 411 阅读 · 1 评论 -
【hash使用场景之房间号创建】
RandomService.javapackage org.example.testjedis;import java.util.Random;public class RandomService { private static final Random r = new Random(); /** * 随机一个start-end的值 * * @param start * @param end * @return .原创 2021-09-30 17:31:05 · 273 阅读 · 0 评论 -
【string实战玩家信息缓存】1.fastjson实现string和java bean互转 2.fastjson,jackson,gson
Role.javapackage org.example.testjedis;public class Role { private long rid; private String name; private int age; private Data data; public Role(long rid, String name, int age, Data data) { this.rid = rid; this.n原创 2021-09-30 15:59:26 · 467 阅读 · 0 评论 -
【redis2种持久化方式】 1.RDB(如:10min内有10条更改,则持久化一次) 2.AOF(每一条数据都写日志,类似于mysql的binlog,通过重新执行进行恢复[不推荐])
1)持久化 (1)jedis是内存数据库,正常情况下,redis服务器重启,数据会丢失,我们可以将redis内存中的数据持久化保存到硬盘的文件中;2)RDB: 默认方式,不需要进行配置,默认就使用这种机制-->对redis性能影响不大 (1)在一定的间隔时间中,检测key的变化情况,然后去持久化数据 (2)编辑redis.windows.conf更改持久化策略-->dump.rdb save 900 1 在15分钟内,如果有1个key改变的话,就持久化一次 sav.原创 2020-05-11 15:10:05 · 393 阅读 · 0 评论 -
【redisson 发布订阅】实现rpc通信
pom.xml <dependencies> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.11.1</version> </dependency>原创 2022-04-12 17:44:41 · 813 阅读 · 0 评论 -
【redis事务应用】之重新理解全球同服架构
今天技术Leader说了下对COK全球同服的理解,第一句话说:全球同服其实是一个伪命题。全球同服的本质,应该是从玩家的角度理解,数据互通+玩家关系互通+战斗互通这3方面去理解,虽然我们目前采用的分区分服的架构,一个进程负责玩家与系统的交互和玩家工会,GS1玩家工会搜不到GS2玩家工会。但是我们却能通过redis给每个聊天频道建立一个channel,实现不同服直接的玩家数据能互通,而且,可以通过mysql记录跨服的玩家好友关系,从而使用redis实现私聊等,给玩家全球同服的感受,战斗也是一样,数据原创 2021-11-18 17:48:32 · 695 阅读 · 0 评论 -
【redisson分布式锁之RLock】1.加锁rLock.lock(30,TimeUnit.SECONDS) 2.解锁rLock.unlock()
pom.xml <dependencies> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.11.1</version> </dependency>原创 2021-08-28 17:59:32 · 2669 阅读 · 0 评论 -
【redis集群搭建】 1.3主3从 2.切ruby镜像 3.https证书问题 4.redisson连接到集群
1)参考博客详情2)镜像问题certificate verify failed (https://gems.ruby-china.org/specs.4.8.gz) · Issue #5 · ruby-china/rubygems-mirror · GitHubgem sources --add https://gems.ruby-china.org/ Error fetching https://gems.ruby-china.org/: SSL_connect returned=1 errno=原创 2021-09-10 23:26:36 · 209 阅读 · 0 评论 -
【redisson启动配置】redisson.yml
原创 2021-09-22 15:48:39 · 754 阅读 · 0 评论 -
【redisson跨进程共享的RMap】1.场景:用1个key实现用户uid到用户信息的缓存 2.有泛型,里面存的什么东西更加的直观 3.用rMap.put去覆盖之前的旧值
SomeObject.javapackage org.example.testset;import java.io.Serializable;import java.util.HashMap;import java.util.Map;public class SomeObject implements Serializable { private static final long serialVersionUID = -1L; private Map<String原创 2021-09-08 14:23:48 · 620 阅读 · 0 评论 -
【redisson实现发布订阅】1.支持多个订阅者 2.没监听的当时没收到就再也收不到了 3.RTopic创建主题 addListener监听 publish发布
pom.xml <dependencies> <dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.11.1</version> </dependency>原创 2021-09-07 21:23:12 · 5197 阅读 · 4 评论