Java代码如何使用Redis数据库(持续更新)
程序员文章站
2024-03-06 08:57:01
...
下载Redis:
- 下载压缩包
地址:https://pan.baidu.com/s/1UBOoef_Szdkrzd0rJ2BeZg
提取码:2gun
2.解压到自定义的reids文件夹,解压后如图所示
3.进自定义的redis文件夹,在地址栏输入cmd,点击回车
输入redis-server.exe redis.windows.conf
出现[9920] 17 Nov 10:00:12.064 # Creating Server TCP listening socket 127.0.0.1:6379: bind: No error则运行成功
4.现在进入自定义的文件夹打开reids-cli.exe出现弹窗
5.ok目前你就可以在本地以cmd的方式使用redis了,接下来我会讲解如何在Java中使用redis数据库.
在Java中集成reids:
首先确保本地安装reids: 1.导入jar包 <!-- https://mvnrepository.com/artifact/redis.clients/jedis -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/junit/junit -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency>
2.建立Jedis的全局变量
public class TestRedis {
public static Jedis jedis =null;
/**
* @BeforeClass
* 加载于静态方法之上一般,在所有方法执行前执行,只加载一次
*/
@BeforeClass
public static void init() {
jedis = new Jedis("localhost");
System.out.println(jedis.ping());
}
}
Jedis对String的操作:
JAVA代码: @Test
public void StringTest() throws InterruptedException {
//set(key value)
String set = jedis.set("key1", "value1");
System.out.println(set); //1.创建成功返回 "ok" 2.key的值如果一样,后一次添加的会覆盖之前的数据.
//get(key)
String get = jedis.get("key1");
System.out.println(get); //1.返回值为 "value1"
//getSet(key value) 给key重新赋值,并且返回被重新赋值前的value
String getSet = jedis.getSet("key1","value2");
System.out.println(getSet);
System.out.println(jedis.get("key1"));
//mget(key key1 key2 ...) 获取多个key对应的value
List<String> mget = jedis.mget("key1","key2","key3","key4");
for (String str : mget) {
System.out.println(str);
}
//setnx(key value)如果库不存在想要添加的key,就添加,可以避免覆盖
Long setnx = jedis.setnx("key7","value7");
System.out.println(setnx); // 成功返回 1
Long setnx1 = jedis.setnx("key7","value7");
System.out.println(setnx1); //失败返回 0
//setex(key time value)向库中添加的同时,设置时间
String setex = jedis.setex("key8",10,"value8");
System.out.println(setex);
for (int i = 0; i < 100; i++) {
System.out.println(jedis.get("key8"));
Thread.sleep(1000);
}
//mset(key value key1 value1 key2 value2 ...)
String mset = jedis.mset("key11","value11","key12","value12");
System.out.println(mset); //返回值为ok
//msetnx(key value key1 value1 key2 value2) 所有的值都不存在的时候就是保存
Long msetnx = jedis.msetnx("key14","value1-1","key13","value12");
System.out.println(msetnx); //返回值 成功为1 失败为0
//incr(key) 相当于value+1
Long incr = jedis.incr("111");
System.out.println(incr); //返回值为value+1 的值
// incrby(key,integer) 相当于value+integer
Long get1 = jedis.incrBy("111",6);
System.out.println(get); //返回值为value+integer的值
//decr(key) 相当于value-1
//decr(key integer) 相当于value-integer
//append("key" "content")
Long append =jedis.append("111","connect");
System.out.println(append); //返回值为value的长度
//substr("key") 返回value串
String substr = jedis.substr("111",0, -1);
System.out.println(substr); //0为起始位置,1为结尾位置
}
Jedis对list的操作:
JAVA代码 /**
* Jedis对List的操作
*/
@Test
public void ListTest(){
// //rpush() 在名为key的list尾部添加数据
Long rpush = jedis.rpush("key","1","2","3");
System.out.println(rpush); //返回值为当前list数据的个数
//
//lpush() 在名为key的list头部添加数据
Long lpush = jedis.lpush("key","9","8","7");
System.out.println(lpush); //返回值为当前list数据的个数
//
// //llen()查询名为key的list的长度
Long llen = jedis.llen("key");
System.out.println(llen); //返回值为当前list的长度
//
// lrange("key",0 -1)查询当前list,0代表从头部,-1代表从尾部
List<String> lrange = jedis.lrange("key1",0,-1);
for (String str : lrange) {
System.out.println(str);
}
// //ltrim(key 0 1) 截取名为key的list,保留起始到终止的元素
String ltrim = jedis.ltrim("key",0,1);
System.out.println(ltrim); //返回值为 ok
// //lindex(key 2) 返回名为key的list中位于index位置中的值
String lindex = jedis.lindex("key",0);
System.out.println(lindex);// 返回值为lindex位置的值
//lset(key index value) 将list中index中的值赋为value
String lset = jedis.lset("key",0,"999");
System.out.println(lset); //返回值为ok
//lrem(key count value)删除count个名为key的value元素
//当count =0 时删除所有
//当count >0 时从头部删除count个value元素
//当count <0 时从尾部删除count个value元素
//lpop(key)删除并返回名为key的list中的首元素
String lpop = jedis.lpop("key");
System.out.println(lpop);
// //rpop(key)删除并返回名为key的list中的尾元素
String rpop = jedis.rpop("key");
System.out.println(rpop);
//blpop(timeout,key key1 key2 ... )
//当timeout = 0 的时候 若遇到keyn不存在或者key对应的list 为空时,命令结束
//当timeout > 0 则等待timeout秒
//如果问题没有解决就从key+1开始的list执行pop操作
List<String> blpop = jedis.blpop(1000,"key","key1","key...");
// rpoplpush(key key1)删除key队尾元素,并添加到kye1的头部,并返回该值
String rpoplpush = jedis.rpoplpush("key","key1");
System.out.println(rpoplpush);
}
解决方案:
提示:这里填写该问题的具体解决方案:
例如:新建一个 Message 对象,并将读取到的数据存入 Message,然后 mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();换成 mHandler.sendMessage()。
下一篇: PHP串行化与反串行化实例分析