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.redisDbimport 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客户端查询插入数据库的值:
到此就连接成功了。
具体实现步骤如下:1.新建一个文本文件,包含redis命令SETKey0Value0SETKey1Value1SETKeyNValueN如果有了原始数据,其实构造这个文件并不难,譬如shell,python都可以2.将这些命令转化成RedisProtocol。因为Redis管道功能支持的是RedisProtocol,而不是直接的Redis命令。如何转化,可参考后面的脚本。3.利用管道插入catdata.txt|redis-cli--pipeShellVSRedispipe下面通过测试来具体看看Shell批量导入和Redispipe之间的效率。测试思路:分别通过shell脚本和Redispipe向数据库中插入10万相同数据,查看各自所花费的时间。Shell脚本如下:#!/bin/bashfor((i=0i>redis.logdone每次插入的值都是helloworld,但键不同,name0,name1name99999。RedispipeRedispipe会稍微麻烦一点1>首先构造redis命令的文本文件在这里,我选用了python#!/usr/bin/pythonforiinrange(100000):print'setname'+str(i),'helloworld'#python1.py>redis_commands.txt#head-2redis_commands.txtsetname0helloworldsetname1helloworld2>将这些命令转化成RedisProtocol在这里,我利用了github上一个shell脚本,#!/bin/bashwhilereadCMDdo#eachcommandbeginswith*{numberargumentsincommand}\r\nXS=($CMD)printf"*${#XS[@]}\r\n"#foreachargument,weappend${length}\r\n{argument}\r\nforXin$CMDdoprintf"\$${#X}\r\n$X\r\n"donedoneredis_data.txt#head-7redis_data.txt*3$3set$5name0$10helloworld至此,数据构造完毕。测试结果欢迎分享,转载请注明来源:内存溢出
评论列表(0条)