javaredis
1. 如何在java中使用redis
publicclassRedisListJava{
publicstaticvoidmain(String[]args){
//连接本地的Redis服务
Jedisjedis=newJedis("localhost");
System.out.println("Connectiontoserversucessfully");
//存储数据到列表中
jedis.lpush("tutorial-list","Redis");
jedis.lpush("tutorial-list","Mongodb");
jedis.lpush("tutorial-list","Mysql");
//获取存储的数据并输出
List<String>list=jedis.lrange("tutorial-list",0,5);
for(inti=0;i<list.size();i++){
System.out.println("Storedstringinredis::"+list.get(i));
}
}
}
2. 怎么在java中传redis命令
第一步,在windows安装配置好redis数据库。这里我就不再概述了。jedis-2.4.2.jar,当然最好是最新版本的jar包。这个在下就出来的。后,放在一个文件夹下面,一会会需要到。
第二步。打开eclipse,新建一个java工程。如下图所示:
第三步:在Test这个java工程里面,我们新建一个folder,命名lib,把刚才的jedis-2.4.2.jar包放在我们新建的lib的包下面,如下图所示:
第四步,在eclipse中,选中jar包,build path下。然后我们再Test这个项目里面我们新建一个class,class名字为TestConnect。
第五步,在类里面,我们输入如下的内容:
// Connecting to Redis server on localhost
//实例化一个客户端
Jedis jedis = new Jedis("localhost");
//=================================================
// check whether server is running or not
//ping下,看看是否通的
System.out.println("Server is running: " + jedis.ping());
//保存一个
jedis.set("leiTest", "localhost Connection ?sucessfully");
//获取一个
System.out.println("通过key获取value: ? ?" + jedis.get("leiTest"));
第六步,对刚才的类进行运行,ctrl+f11快捷键运行下,如下图所示:
第七步,进一步验证我们是否在redis上是否保存了数据,并且能够取出来,我们到redis安装包的目录,如下图,打开红色框内的 redis-cli.exe,打开后,我们进入下面的第二个图片的界面。
第八步:我们在redis的客户端的界面 输入 ?get leiTest ?这个指令。leiTest是刚才在eclipse中我们存入redis数据库中的一个String类型的键。如下图,证明我们确实成功了,你也试试吧。
3. Java操作redis的jedis的范围查询是怎么写的
Java操作redis的jedis的范围查询是怎么写的? 我要从一个范围到另一个范围的区间
我试过了,
List<String> userList = jedis.lrange("userList", 0, -1);
Set<String> user = jedis.zrange("user", 0, -1);
这两个范围查询的得到结果,为何都是 0
但是我用 Set<String> str =jedis.keys("tes2:*");
发现是用完整的数据的,我一次性读取这么多数据,redis直接socket失败了
4. 如何用java获取redis的info
预备
jedis-2.5.2
commons-pool2-2.2.jar
使用单连接
此方式仅建议用于开发环境做调试用。
// 创建连接
String host = "192.168.56.102";
int port = 6379;
Jedis client = new Jedis(host, port);
// 执行set指令
String result = client.set("key-string", "Hello, Redis!");
System.out.println( String.format("set指令执行结果:%s", result) );
// 执行get指令
String value = client.get("key-string");
System.out.println( String.format("get指令执行结果:%s", value) );
运行上述代码,控制台输出:
set指令执行结果:OK
get指令执行结果:Hello, Redis!
使用连接池
此方式适用于仅使用单个Redis实例的场景。
// 生成连接池配置信息
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(10);
config.setMaxTotal(30);
config.setMaxWaitMillis(3*1000);
// 在应用初始化的时候生成连接池
JedisPool pool = new JedisPool(config, "192.168.56.102", 6379);
// 在业务操作时,从连接池获取连接
Jedis client = pool.getResource();
try {
// 执行指令
String result = client.set("key-string", "Hello, Redis!");
System.out.println( String.format("set指令执行结果:%s", result) );
String value = client.get("key-string");
System.out.println( String.format("get指令执行结果:%s", value) );
} catch (Exception e) {
// TODO: handle exception
} finally {
// 业务操作完成,将连接返回给连接池
if (null != client) {
pool.returnResource(client);
}
} // end of try block
// 应用关闭时,释放连接池资源
pool.destroy();
运行上述代码,控制台输出:
set指令执行结果:OK
get指令执行结果:Hello, Redis!
使用连接池+分布式
在规模较大的系统中,往往会有多个Redis实例做负载均衡。并且还实现主从备份,当主实例发生故障时,切换至从实例提供服务。
类似于Memcached的客户端,Jedis也提供了客户端分布式操作的方式,采用一致性哈希算法。
// 生成多机连接信息列表
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
shards.add( new JedisShardInfo("127.0.0.1", 6379) );
shards.add( new JedisShardInfo("192.168.56.102", 6379) );
// 生成连接池配置信息
JedisPoolConfig config = new JedisPoolConfig();
config.setMaxIdle(10);
config.setMaxTotal(30);
config.setMaxWaitMillis(3*1000);
// 在应用初始化的时候生成连接池
ShardedJedisPool pool = new ShardedJedisPool(config, shards);
// 在业务操作时,从连接池获取连接
ShardedJedis client = pool.getResource();
try {
// 执行指令
String result = client.set("key-string", "Hello, Redis!");
System.out.println( String.format("set指令执行结果:%s", result) );
String value = client.get("key-string");
System.out.println( String.format("get指令执行结果:%s", value) );
} catch (Exception e) {
// TODO: handle exception
} finally {
// 业务操作完成,将连接返回给连接池
if (null != client) {
pool.returnResource(client);
}
} // end of try block
// 应用关闭时,释放连接池资源
pool.destroy();
运行上述代码,控制台输出:
set指令执行结果:OK
get指令执行结果:Hello, Redis!
5. redis java 有什么用
Java连接redis的使用示例
Redis是开源的key-value存储工具,redis通常用来存储结构化的数据,因为redis的key可以包含String、hash、listset和sorted list。
Redisclient支持多种语言,包括:c、C++、C#、php、java、python、go等语言,根据自己的开发语言,选择合适的redis client版本类型即可。我是使用java语言开发的,针对java语言,redis client也提供了多种客户端支持,按照推荐类型依次是:Jedis、Redisson、JRedis、JDBC-Redis、RJC、redis-protocol、aredis、lettuce。前两种类型是比较推荐的,我们采用了Redisson类型版本作为redisclient的使用。
Redisson版的redis可发工程搭建
1. 新建maven工程
2. 在pom.xml文件的dependencies节点下增加如下内容:
<dependency>
<groupId>org.redisson</groupId>
<artifactId>redisson</artifactId>
<version>1.0.2</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
<version>1.7.7</version>
</dependency>
3. 保存pom.xml后,等eclispe工程构建完成后即可进行开发了
开发示例
下面是演示连接redis服务器、保存读取concurrentMap对象、保存读取set对象和保存读取Queue对象的示例代码,代码比较简单,这里就不再详细讲解了,代码如下:
[java] view plain
package com.my.test.redis;
import java.util.Queue;
import java.util.Set;
import java.util.concurrent.ConcurrentMap;
import org.redisson.Config;
import org.redisson.Redisson;
public class RedisExample {
/**
* @param args
*/
public static void main(String[] args) {
// 1.初始化
Config config = new Config();
config.setConnectionPoolSize(10);
config.addAddress("127.0.0.1:6379");
Redisson redisson = Redisson.create(config);
System.out.println("reids连接成功...");
// 2.测试concurrentMap,put方法的时候就会同步到redis中
ConcurrentMap<String, Object> map = redisson.getMap("FirstMap");
map.put("wuguowei", "男");
map.put("zhangsan", "nan");
map.put("lisi", "女");
ConcurrentMap resultMap = redisson.getMap("FirstMap");
System.out.println("resultMap==" + resultMap.keySet());
// 2.测试Set集合
Set mySet = redisson.getSet("MySet");
mySet.add("wuguowei");
mySet.add("lisi");
Set resultSet = redisson.getSet("MySet");
System.out.println("resultSet===" + resultSet.size());
//3.测试Queue队列
Queue myQueue = redisson.getQueue("FirstQueue");
myQueue.add("wuguowei");
myQueue.add("lili");
myQueue.add("zhangsan");
myQueue.peek();
myQueue.poll();
Queue resultQueue=redisson.getQueue("FirstQueue");
System.out.println("resultQueue==="+resultQueue);
// 关闭连接
redisson.shutdown();
}
}
6. java 中redis 如何使用
这是我之前写的代代码,可以参考一下:
importjava.util.Set;
importcom.google.gson.Gson;
importredis.clients.jedis.Jedis;
importredis.clients.jedis.JedisPool;
importredis.clients.jedis.JedisPoolConfig;
publicclassApp{
publicstaticvoidmain(String[]args){
JedisPoolConfigconfig=newJedisPoolConfig();
config.setMaxIdle(5);
config.setMaxWaitMillis(10000);
config.setTestOnBorrow(false);
JedisPooljedisPool=newJedisPool(config,"127.0.0.1",6379);
Jedisjedis=jedisPool.getResource();
jedis.flushDB();
jedis.set("name","Tom");
Useruser=newUser(1,"Tom","User");
Gsongson=newGson();
Stringjson=gson.toJson(user);
jedis.set("user1",json);
Set<String>keys=jedis.keys("*");
for(Stringkey:keys){
System.out.println(key);
}
}
}
如果有疑问,可以随时追问。
7. redis在实际开发中,使用Java哪个框架
1、存储简单数据
try {
Jedis jedis = new Jedis();
jedis.set("name", "JackGSmith");
} catch (Exception e) {
//如果缓存连不上,则不处理
System.out.println("登录无法更新该用户缓存");
}
从redis缓存中获取key为“name”的值,使用jedis.get("name"),用一个String变量接收即可。
2、存储对象、集合
存对象集合用序列化的方式存储,用反序列化的方式取值。存储的key和value都是转化成字节码的形式。
先定义一个抽象类:SerializeTranscoder.java,代码如下:
package cn.com.taiji.sample.utils;
import java.io.Closeable;
import java.io.IOException;
public abstract class SerializeTranscoder {
public abstract byte[] serialize(Object value);
8. java程序怎么连接redis
packagecom.my.test.redis;
importjava.util.Queue;
importjava.util.Set;
importjava.util.concurrent.ConcurrentMap;
importorg.redisson.Config;
importorg.redisson.Redisson;
publicclassRedisExample{
/**
*@paramargs
*/
publicstaticvoidmain(String[]args){
//1.初始化
Configconfig=newConfig();
config.setConnectionPoolSize(10);
config.addAddress("127.0.0.1:6379");
Redissonredisson=Redisson.create(config);
System.out.println("reids连接成功...");
//2.测试concurrentMap,put方法的时候就会同步到redis中
ConcurrentMap<String,Object>map=redisson.getMap("FirstMap");
map.put("wuguowei","男");
map.put("zhangsan","nan");
map.put("lisi","女");
ConcurrentMapresultMap=redisson.getMap("FirstMap");
System.out.println("resultMap=="+resultMap.keySet());
//2.测试Set集合
SetmySet=redisson.getSet("MySet");
mySet.add("wuguowei");
mySet.add("lisi");
SetresultSet=redisson.getSet("MySet");
System.out.println("resultSet==="+resultSet.size());
//3.测试Queue队列
QueuemyQueue=redisson.getQueue("FirstQueue");
myQueue.add("wuguowei");
myQueue.add("lili");
myQueue.add("zhangsan");
myQueue.peek();
myQueue.poll();
QueueresultQueue=redisson.getQueue("FirstQueue");
System.out.println("resultQueue==="+resultQueue);
//关闭连接
redisson.shutdown();
}
}
9. java程序,redis操作,存储
你可以把组装好了得map数据转成json字符串,然后存到redis里面,从redis取出来之后再转回来使用
10. 怎么使用java访问redis
public class RedisListJava {
public static void main(String[] args) {
//连接本地的 Redis 服务
Jedis jedis = new Jedis("localhost");
System.out.println("Connection to server sucessfully");
//存储数据到列表中
jedis.lpush("tutorial-list", "Redis");
jedis.lpush("tutorial-list", "Mongodb");
jedis.lpush("tutorial-list", "Mysql");
// 获取存储的数据并输出
List<String> list = jedis.lrange("tutorial-list", 0 ,5);
for(int i=0; i<list.size(); i++) {
System.out.println("Stored string in redis:: "+list.get(i));
}
}
}