排行榜

  • 用户榜
  • 标签榜
  • 冲榜分奖金

频道

最新最热悬赏待采纳 筛选
  • 0

    回答

  • 8

    浏览

请问本地连接远程的redis时,这是什么问题? redis-cli -h hostname -p port Could not connect to Redis at hostname:port: nodename nor servname provided, or not known redis-cli连接127.0.0.1没问题。 我是mac系统,跟这有关系吗

  • 1

    回答

  • 14

    浏览

项目是有一个商品列表下面有很多个商品 每个商品有数量  商品3小时就会过期,查询的时候要获取商品数量大于0的商品,所以用到了有序集合,网上查的资料都是在商品没有数量的情况下把score设置成时间戳来计算过期时间,但是商品的数量已经占据了score了怎么操作呢。

回答 日川冈阪丶
采纳率50%
25天前
  • 3

    回答

  • 23

    浏览

        项目中使用微信小程序作为前端,服务器端使用 Spring Boot,缓存使用 Redis。         用户上线后,将用户账号(即手机号)存入 Redis 中(Vaue 为 null),以防止用户重复登录。用户主动点击退出登录时,调用后端相应方法清除缓存数据。但直接关闭程序,则缓存中数据无法被清除,下次登录时若缓存数据未超时仍然存在,则必然重复登录。         关闭程序时,客户端应如何通知服务器端自己下线,以便清理缓存?类似的,如果使用网页前端,关闭网页后如何通知服务器端自己下线?         

  • 0

    回答

  • 15

    浏览

    目前在做一个订单系统,因为用户经常根据id查询订单信息所以我们在对应的方法加上了缓存的注解,对应的缓存key为:orderinfo:{orderId},随着系统的复制程度上升,我们发现商机端也会经常查询订单信息,不过商家是根据订单状态查询的比较多,于是我们又在商家查询的方法上添加了缓存注解生成的key为:orderinfo:status:{status},随着系统不断复杂,我们不断的添加缓存key。     这样系统的反应是变快了,但是我们发现,这严重的加重了我们的开发工作,因为有很多方法涉及到订单状态的变更,比如用户确认收货,商家发货,快递派送等都会去更新订单状态,于是每个方法我们都不得不主动的去删除对应的缓存key。就会有很多重复代码,比如更新完成后删除key:orderinfo:{orderId} ,orderinfo:status:{status},后面在其他地方添加了缓存注解的画,也要返回这里加上清除缓存的代码,这样稍有不慎,忘记加清理缓存的代码的话,redis上的数据因为没有及时清除都会发生和mysql数据不一致的情况。即使是使用了5分钟自动失效的方式,也会存在redis的数据和mysql数据不一致的情况。 回到起点,我觉得我们的key设计的不合理,但是我们却没有太好的方法,大家是如何处理类似的场景?  

回答 爱旅游爱工作
采纳率100%
20天前
  • 0

    回答

  • 8

    浏览

试了下njredis支持库 很容易闪退 有没有其他的

回答 日川冈阪丶
采纳率50%
20天前
  • 3

    回答

  • 28

    浏览

mongo中存当天前的数据,redis存当天的数据,每天凌晨会同步一次redis的数据到mongo,并清空redis。现在如何针对这两个数据库进行分页排序查询?

  • 7

    回答

  • 34

    浏览

执行该代码: @RunWith(SpringRunner.class) @SpringBootTest public class RedisTest { @Autowired private StringRedisTemplate redisTemplate; @Test public void testSet(){ redisTemplate.getConnectionFactory(); ValueOperations<String, String> operations = redisTemplate.opsForValue(); operations.set("apple", "red"); System.out.println(operations.get("apple")); } } 异常如下: yml文件:    

  • 4

    回答

  • 17

    浏览

2021-04-23 20:33:35.691 ERROR 15000 --- [nio-2222-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.data.redis.RedisConnectionFailureException: Unable to connect to Redis; nested exception is io.lettuce.core.RedisConnectionException: Unable to connect to 192.168.1.174:6379] with root cause java.nio.channels.ClosedChannelException: null at io.netty.channel.nio.AbstractNioChannel.doClose(AbstractNioChannel.java:502) ~[netty-transport-4.1.60.Final.jar:4.1.60.Final] at io.netty.channel.socket.nio.NioSocketChannel.doClose(NioSocketChannel.java:342) ~[netty-transport-4.1.60.Final.jar:4.1.60.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.doClose0(AbstractChannel.java:760) ~[netty-transport-4.1.60.Final.jar:4.1.60.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:737) ~[netty-transport-4.1.60.Final.jar:4.1.60.Final] at io.netty.channel.AbstractChannel$AbstractUnsafe.close(AbstractChannel.java:608) ~[netty-transport-4.1.60.Final.jar:4.1.60.Final] at io.netty.channel.DefaultChannelPipeline$HeadContext.close(DefaultChannelPipeline.java:1352) ~[netty-transport-4.1.60.Final.jar:4.1.60.Final] at io.netty.channel.AbstractChannelHandlerContext.invokeClose(AbstractChannelHandlerContext.java:622) ~[netty-transport-4.1.60.Final.jar:4.1.60.Final] at io.netty.channel.AbstractChannelHandlerContext.access$1200(AbstractChannelHandlerContext.java:61) ~[netty-transport-4.1.60.Final.jar:4.1.60.Final] at io.netty.channel.AbstractChannelHandlerContext$11.run(AbstractChannelHandlerContext.java:611) ~[netty-transport-4.1.60.Final.jar:4.1.60.Final] at io.netty.util.concurrent.AbstractEventExecutor.safeExecute(AbstractEventExecutor.java:164) ~[netty-common-4.1.60.Final.jar:4.1.60.Final] at io.netty.util.concurrent.SingleThreadEventExecutor.runAllTasks(SingleThreadEventExecutor.java:472) ~[netty-common-4.1.60.Final.jar:4.1.60.Final] at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:500) ~[netty-transport-4.1.60.Final.jar:4.1.60.Final] at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) ~[netty-common-4.1.60.Final.jar:4.1.60.Final] at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) ~[netty-common-4.1.60.Final.jar:4.1.60.Final] at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) ~[netty-common-4.1.60.Final.jar:4.1.60.Final] at java.lang.Thread.run(Thread.java:744) [na:1.8.0]

  • 1

    回答

  • 36

    浏览

用户token有效期30天,但是第二天登录就失效了,查看redis 发现被清掉了,我暂时禁用了flushall命令,并且开启了127.0.0.1 只允许本地访问,但是这样就没法使用图形化工具远程连接,不方便项目的调试,因为项目中有需求是要用到监听器的,加上密码或者改端口,会导致监听不到key 失效,有什么好的解决办法吗?或者说监听方法的端口和密码是可以修改的吗?监听的实现就是继承 KeyExpirationEventMessageListener

回答 EliasGuo
采纳率0%
13天前
  • 2

    回答

  • 34

    浏览

1.这是第一次打开页面 2. 这是接口获取的数据 全部是null  3.刷新页面之后就可以取到值了   4. 这是页面展示的效果   5.然后我再后台接口查看信息,打了断点,发现是从redis中取值   6.redis中是有数据信息的,但是第一次就是取不到值,只有刷新之后才能拿到数据,想问一下大佬们,这种问题怎么解决。 

  • 0

    回答

  • 5

    浏览

# Unless specified otherwise, by default Redis will save the DB: #   * After 3600 seconds (an hour) if at least 1 key changed #   * After 300 seconds (5 minutes) if at least 100 keys changed #   * After 60 seconds if at least 10000 keys changed # # You can set these explicitly by uncommenting the three following lines. #  save 3600 1  save 300 100  save 60 10000 我解释下意思,3600秒内有1个key 的值发生变化,300秒内有100个key的值发生变化,60秒内有10000个key的值发生变化,redis默认只要达到上述任一一个条件就会备份,这种策略真不好理解,感觉第一个条件把后面两个覆盖了,任何修改key都会触发第一个条件啊

回答 凝视深渊520
采纳率100%
12天前
  • 3

    回答

  • 13

    浏览

Redis stream 使用 Xread Block 命令时。使用同一个连接可以运行XADD命令么?,还是需要再启动一个连接。 使用的是node环境

  • 0

    回答

  • 3

    浏览

redis集群,正常启动。 配置redisson集群,跟redis对应,整个项目启动的时候有异常。配置如下 spring.redisson.threads=0 spring.redisson.nettyThreads= 0 spring.redisson.codec=org.redisson.codec.JsonJacksonCodec spring.redisson.transportMode=NIO spring.redisson.clusterServersConfig.idleConnectionTimeout=10000 spring.redisson.clusterServersConfig.pingTimeout=1000 spring.redisson.clusterServersConfig.connectTimeout=10000 spring.redisson.clusterServersConfig.timeout=3000 spring.redisson.clusterServersConfig.retryAttempts=3 spring.redisson.clusterServersConfig.retryInterval=1500 spring.redisson.clusterServersConfig.failedSlaveReconnectionInterval=3000 spring.redisson.clusterServersConfig.failedSlaveCheckInterval=60000 spring.redisson.clusterServersConfig.password=XXXXX spring.redisson.clusterServersConfig.subscriptionsPerConnection=5 spring.redisson.clusterServersConfig.clientName= spring.redisson.clusterServersConfig.loadBalancer=org.redisson.connection.balancer.RoundRobinLoadBalancer spring.redisson.clusterServersConfig.slaveSubscriptionConnectionMinimumIdleSize=1 spring.redisson.clusterServersConfig.slaveSubscriptionConnectionPoolSize=50 spring.redisson.clusterServersConfig.slaveConnectionMinimumIdleSize=32 spring.redisson.clusterServersConfig.slaveConnectionPoolSize=64 spring.redisson.clusterServersConfig.masterConnectionMinimumIdleSize=32 spring.redisson.clusterServersConfig.masterConnectionPoolSize=64 spring.redisson.clusterServersConfig.readMode=SLAVE spring.redisson.clusterServersConfig.nodeAddresses=redis://XXX.60.19.XXX:7001,redis://XXX.60.19.XXX:7002,redis://XXX.60.19.XXX:7003 spring.redisson.clusterServersConfig.scanInterval=1000

  • 4

    回答

  • 20

    浏览

本地项目连接服务器的mysql。 服务器上安装了redis,也启动了。 但是本地启动项目就报错: org.springframework.beans.FatalBeanException: Error destroying bean [shiroCacheManager]; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: JedisPubSub was not subscribed to a Jedis instance. 完整错误: [ERROR] 2021-05-08 10:08:47,792 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:581) - Destroy method on bean with name 'shiroCacheManager' threw an exception org.springframework.beans.FatalBeanException: Error destroying bean [shiroCacheManager]; nested exception is redis.clients.jedis.exceptions.JedisConnectionException: JedisPubSub was not subscribed to a Jedis instance.     at org.apache.shiro.spring.LifecycleBeanPostProcessor.postProcessBeforeDestruction(LifecycleBeanPostProcessor.java:123)     at org.springframework.beans.factory.support.DisposableBeanAdapter.destroy(DisposableBeanAdapter.java:253)     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroyBean(DefaultSingletonBeanRegistry.java:578)     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingleton(DefaultSingletonBeanRegistry.java:554)     at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingleton(DefaultListableBeanFactory.java:961)     at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.destroySingletons(DefaultSingletonBeanRegistry.java:523)     at org.springframework.beans.factory.support.DefaultListableBeanFactory.destroySingletons(DefaultListableBeanFactory.java:968)     at org.springframework.context.support.AbstractApplicationContext.destroyBeans(AbstractApplicationContext.java:1032)     at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:556)     at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)     at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)     at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)     at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)     at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)     at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)     at javax.servlet.GenericServlet.init(GenericServlet.java:158)     at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1144)     at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1091)     at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:985)     at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4885)     at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5199)     at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)     at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:743)     at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:719)     at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:714)     at org.apache.catalina.startup.HostConfig.manageApp(HostConfig.java:1720)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)     at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:483)     at org.apache.catalina.mbeans.MBeanFactory.createStandardContext(MBeanFactory.java:432)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     at org.apache.tomcat.util.modeler.BaseModelMBean.invoke(BaseModelMBean.java:287)     at com.sun.jmx.interceptor.DefaultMBeanServerInterceptor.invoke(DefaultMBeanServerInterceptor.java:819)     at com.sun.jmx.mbeanserver.JmxMBeanServer.invoke(JmxMBeanServer.java:801)     at com.sun.jmx.remote.security.MBeanServerAccessController.invoke(MBeanServerAccessController.java:468)     at javax.management.remote.rmi.RMIConnectionImpl.doOperation(RMIConnectionImpl.java:1468)     at javax.management.remote.rmi.RMIConnectionImpl.access$300(RMIConnectionImpl.java:76)     at javax.management.remote.rmi.RMIConnectionImpl$PrivilegedOperation.run(RMIConnectionImpl.java:1309)     at java.security.AccessController.doPrivileged(Native Method)     at javax.management.remote.rmi.RMIConnectionImpl.doPrivilegedOperation(RMIConnectionImpl.java:1408)     at javax.management.remote.rmi.RMIConnectionImpl.invoke(RMIConnectionImpl.java:829)     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)     at java.lang.reflect.Method.invoke(Method.java:498)     at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:361)     at sun.rmi.transport.Transport$1.run(Transport.java:200)     at sun.rmi.transport.Transport$1.run(Transport.java:197)     at java.security.AccessController.doPrivileged(Native Method)     at sun.rmi.transport.Transport.serviceCall(Transport.java:196)     at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:568)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:826)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:683)     at java.security.AccessController.doPrivileged(Native Method)     at sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:682)     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)     at java.lang.Thread.run(Thread.java:748) Caused by: redis.clients.jedis.exceptions.JedisConnectionException: JedisPubSub was not subscribed to a Jedis instance.     at redis.clients.jedis.JedisPubSub.unsubscribe(JedisPubSub.java:46)     at com.aebiz.baseframework.cache.impl.lcache.LCacheManager.destroy(LCacheManager.java:85)     at org.apache.shiro.spring.LifecycleBeanPostProcessor.postProcessBeforeDestruction(LifecycleBeanPostProcessor.java:121)     ... 65 more