如何利用redis从数据库读出数据

如何利用redis从数据库读出数据,第1张

应用Redis实现数据的读写,同时利用队列处理器定时将数据写入mysql。同时要注意避免冲突,在redis启动时去mysql读取所有表键值存入redis中,往redis写数据时,对redis主键自增并进行读取,若mysql更新失败,则需要及时清除缓存及同步redis主键。这样处理,主要是实时读写redis,而mysql数据则通过队列异步处理,缓解mysql压力,不过这种方法应用场景主要基于高并发,而且redis的高可用集群架构相对更复杂,一般不是很推荐。

1、在配置文件redis.conf中把绑定的Ip注释掉 

 

2、在配置文件redis.conf中把protected-mode 改为 no 

3、在配置文件redis.conf中把requirepass 设置redis访问授权密码(自己随意设置就好),也可以登录redis客户端使用命令设置:如下: 

./redis-cli 

config set requirepass 123 //123是密码 

经过以上三步基本就可以了,不过也有特殊情况,访问的端口号6379有可能会被防火墙拦截,需要关闭系统的防火墙或取消对6379端口的拦截,这里不在细述。 

接下来就可以创建项目实现 *** 作redis数据库了。在这里我用的开发工具是eclipse,在eclipse中创建一个java Project项目如下图所示: 

项目创建完成后,在src同级目录下创建lib文件夹,导入 *** 作数据库所需jar包(晚上自行下载),jedis用来 *** 作数据库,commons-pool用来实现数据库连接池。 

启动redis服务器: 

创建RedisDemoSimple.java代码如下:

package com.redis.redisDb

import redis.clients.jedis.Jedispublic class RedisDemoSimple {    public static void main(String[] args) {        //ip地址为虚拟机Ip 端口为redis端口

        Jedis jedis = new Jedis("192.168.228.129", 6379)        //redis访问权限 为redis配置文件中redis.conf中配置的requirepass

        jedis.auth("myredis")

        jedis.set("redis_first", "hello")

        System.out.println("key redis_first:"+jedis.get("redis_first"))

    }

}

控制台打印如下:

启动redis客户端查询插入数据库的值: 

 

到此就连接成功了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9429135.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存