首页  >  文章  >  数据库  >  redis常用api操作有哪些

redis常用api操作有哪些

WBOY
WBOY转载
2023-05-26 19:07:221611浏览
//设置键值对
//set key value [EX seconds] [PX milliseconds] [NX|XX]
//获取值
//get key
//删除键
//del key
//清空数据库
//flushdb
//获取list值
//lrange key start stop
//map类型
//hget key field
//hgetall key
//sortedset类型
package hgs.redislearn;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import org.codehaus.jackson.JsonGenerationException;
import org.codehaus.jackson.map.JsonMappingException;
import org.codehaus.jackson.map.ObjectMapper;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import redis.clients.jedis.BinaryClient.LIST_POSITION;
import redis.clients.jedis.Jedis;
/**
 * 
 *  <p>Description:Redis </p> 
 * @author guangshihao
 * @date 2018年9月28日 
 *
 */
public class RedisMainTest {
	Jedis jedis = null;
	@Before
	public void getConnect() {
		 jedis = new Jedis("192.168.6.129", 6379);
	}
	@Test
	public void sysoutConnect() {
		System.out.println(jedis.ping());
	}
	
	@After
	public void finaly() {
		jedis.close();
	}
	
	//测试放入String类型的键值对,并进行获取删除修改等操作
	@Test
	public void TestStringKeys() {
		jedis.set("hgs.name", "haoguangshi.");
		String name = jedis.get("hgs.name");
		System.out.println(name);
		long affect = jedis.del("hgs.name");
		System.out.println(affect);
	}
	
	@Test
	public void TestListKeys() {
		//从左边插入
		jedis.lpush("test_list", "1","2","100");
		//从右边插入
		jedis.rpush("test_list", "100","2","1","this");
		//获取list
		List<String >  lis = jedis.lrange("test_list", 0, -1);
		System.out.println(lis);
		//jedis.lpop lpush  rpop rpush
		//在this出现的第一个位置的前面插入is
		jedis.linsert("test_list", LIST_POSITION.BEFORE, "this", "is");
		
	}
	
	//map类型操作
	@Test
	public void TestMapKeys() throws JsonGenerationException, JsonMappingException, IOException {
/*		Person p = new Person ();
		p.setName("hgs");
		p.setAge(26);
		p.setWeight(65);
		
		
		Person p1 = new Person ();
		p1.setName("wd");
		p1.setAge(23);
		p1.setWeight(60);
		
		ObjectMapper mapper = new ObjectMapper();
		String sp = mapper.writer().writeValueAsString(p);
		String sp1 = mapper.writer().writeValueAsString(p1);
		
		Map<String,String> ps = new HashMap<String, String>();
		ps.put("hgs", sp);
		ps.put("wd", sp1);*/
		jedis.hset("pseron:hgs", "name", "hgs");
		jedis.hset("pseron:hgs", "age", "24");
		jedis.hset("pseron:hgs", "weigth", "65kg");
		
		jedis.hset("pseron:wd", "name", "wd");
		jedis.hset("pseron:wd", "age", "24");		
		jedis.hset("pseron:wd", "weight", "60kg");
		
	}
	@Test
	public void loopMapKeys() {
		//遍历一个map
		Map<String,String> wd = jedis.hgetAll("pseron:wd");
		for(String type : wd.keySet()) {
			System.out.println(type+" : " +wd.get(type));
		}
		//原子操作自增2
		jedis.hincrBy("pseron:hgs\"", "age", 2L);
	}
	
	@Test
	public void delMapKeys() {
		//删除属性
		jedis.hdel("pseron:wd", "weight");
		//打印集合的长度
		System.out.println(jedis.hlen("pseron:hgs"));
	}
	
	//set类型数据结构,添加数据
	@Test
	public void setKeysTest() {
		String[] tmp = new String[] {
			"tianmao","dingding","alimama","zhifubao","feizhu"	
		};
		jedis.sadd("apps", tmp);
		
		String[] tmp1 = new String[] {
				"tianmao","dingdi","alima","zhifubao","feizhu"	
			};
			jedis.sadd("apps", tmp);
			jedis.sadd("apps1", tmp1);
	}
	//遍历
	@Test 
	public void scanSetKeys() {
		//判断某个记录是否存在
		System.out.println(jedis.sismember("apps", "tianmao"));
		System.out.println(jedis.scard("apps"));
		//计算交集
		Set<String> sets = jedis.sinter("apps","apps1");
		for(String s : sets) {
			System.out.println(s);
		}
		
		//并集
		Set<String> sets1 = jedis.sunion("apps","apps1");
		for(String s : sets1) {
			System.out.println(s);
		}
		System.out.println();
		//差集
		Set<String> sets2 = jedis.sdiff("apps","apps1");
		for(String s : sets2) {
			System.out.println(s);
		}
		//遍历
		Set<String> sets3 = jedis.smembers("apps");
		for(String s : sets3) {
			System.out.println(s);
		}
	}
	//SortedSet数据类型
	//存数据
	@Test
	public void sortedSetAddTest() {
		Map<String,Double> scoremem = new HashMap<String, Double>();
		scoremem.put("wd", (double) 88);
		scoremem.put("cm", (double) 87);
		scoremem.put("zz", (double) 90);
		scoremem.put("wzf", (double) 70);
		scoremem.put("xzh", (double) 66);		
		scoremem.put("hgs", (double) 55);
		scoremem.put("hjh", (double) 88);
		scoremem.put("shk", (double) 100);		
		jedis.zadd("roommeets_score", scoremem);
	}
	//sortedSet 遍历
	@Test
	public void scanSortedSet() {
		//正序遍历
		Set<String>  members = jedis.zrange("roommeets_score", 0, -1);
		for(String mem : members) {
			System.out.println("name:"+mem +","+" score:" +jedis.zscore("roommeets_score", mem)+","+" rank:"+(jedis.zrank("roommeets_score", mem)+1));
		}
		System.out.println();
		//正序遍历
		Set<String>  members1 = jedis.zrevrange("roommeets_score", 0, -1);
		for(String mem : members1) {
			System.out.println("name:"+mem +","+" score:" +jedis.zscore("roommeets_score", mem)+","+" rank:"+(jedis.zrevrank("roommeets_score", mem)+1L));
		}
	}
}
class Person{
	String name ;
	int age;
	double weight;
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	public double getWeight() {
		return weight;
	}
	public void setWeight(double weight) {
		this.weight = weight;
	}
	@Override
	public String toString() {
		return "Person [name=" + name + ", age=" + age + ", weight=" + weight + "]";
	}
	
	
	
}

以上是redis常用api操作有哪些的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文转载于:yisu.com。如有侵权,请联系admin@php.cn删除