Redis4.0.8 configuration file detailed explanation:
https://blog.csdn.net/zhoushimiao1990/article/details/98629046
Redis introductory tutorial:
https://blog.csdn.net/liqingtx/article/details/60330555
jedis simple test:
package com.layman.redis;
import org.junit.After;
import org.junit.Test;
import redis.clients.jedis.Jedis;
import java.util.*;
/**
* @author layman
* @description: redis简单测试类
* @date 2021/2/4
*/
public class RedisTest {
private static Jedis jedis = new Jedis("127.0.0.1",6379);
private static byte[] bt = "关系型数据库".getBytes();
private static byte[] mysqlByte = "MySQL数据库".getBytes();
private static byte[] bestByte = "是最好用的数据库".getBytes();
@After
public void close(){
//归还至连接池
jedis.close();
}
/**
* redis是一款高性能的NOSQL系列的非关系型数据库
* redis存储的是:key,value格式的数据,其中key都是字符串,value有5种不同的数据结构
* value的数据结构:
1) 字符串类型 string
2) 哈希类型 hash : map<String><String> 格式或者byte[]数组格式
3) 列表类型 list : LinkedList格式,支持重复元素(链表)
4) 集合类型 set : 不允许重复元素
5) 有序集合类型 SortedSet:不允许重复元素,且元素有顺序
*/
public static void main(String[] args) {
jedis.del("name","username","age");
}
/**
* 设置字符串类型数据
*/
@Test
public void putString(){
jedis.set("name","菠菜饭团");
jedis.set("username","饭团");
jedis.set("age","18");
}
/**
* 获取字符串类型数据
*/
@Test
public void getString(){
String name = jedis.get("name");
String username = jedis.get("username");
String age = jedis.get("age");
System.out.println(name+":"+username+":"+age);
}
/**
* 设置hash数据
*/
@Test
public void setHash(){
//演示添加map数据,只能为<String,String>格式
Map<String,String> map= new HashMap<>();
//map key不允许重复,后添加的数据会覆盖之前的数据
map.put("address","中国江苏");
map.put("email","[email protected]");
map.put("phone","66778899");
//最终显示 123456
map.put("phone","123456");
jedis.hset("myHash",map);
jedis.hset("myHash","lastName","goodman");
//演示添加byte[]数据
Map<byte[],byte[]> byteMap= new HashMap<>();
byteMap.put(mysqlByte,bestByte);
jedis.hset(bt,byteMap);
}
/**
* 获取hash数据
*/
@Test
public void getHash(){
String email = jedis.hget("myHash", "email");
String lastName = jedis.hget("myHash", "lastName");
byte[] bytes = jedis.hget(bt, mysqlByte);
System.out.println(email);
System.out.println(lastName);
System.out.println(new String(bytes));
}
/**
* 设置list数据:允许重复
*/
@Test
public void setList(){
//从左边添加
jedis.lpush("myList","first","second","three");
//从右边添加
jedis.rpush("myList","first","second","three");
//此时数据顺序为:"three","second","first", "first","second","three"
}
/**
* 获取list数据
*/
@Test
public void getList(){
List<String> myList = jedis.lrange("myList", 0, -1);
System.out.println(myList); //[three, second, first, first, second, three]
//删除弹出列表最左边的元素,并将其返回
String l_data = jedis.lpop("myList");
System.out.println(l_data); //three
String r_data = jedis.rpop("myList");
System.out.println(r_data);
}
/**
* 存储sortedSet:不允许重复,且有序
*/
@Test
public void setSortedSet(){
jedis.zadd("mySortedSet",20D,"芹菜饭团");
Map<String,Double> sortedSetMap = new HashMap<>();
sortedSetMap.put("花菜饭团",60D);
sortedSetMap.put("紫菜饭团",55D);
sortedSetMap.put("雪菜饭团",99D);
jedis.zadd("mySortedSet",sortedSetMap);
}
@Test
public void getSortedSet(){
Set<String> set = jedis.zrange("mySortedSet", 0, -1);
System.out.println(set);
//从sortedSet中删除指定的值
jedis.zrem("mySortedSet", "花菜饭团");
}
@Test
public void deleteKey(){
//删除整个key
jedis.del("username");
//删除key中的某个属性
jedis.hdel("myHash","lastName");
jedis.del(bt);
}
}