RedisコマンドのJavaAPI Jedisの操作
本文は主にIDEAの上でJedisの中でRedisの5種類の異なるデータ構造の具体的な操作について説明して、もし完全なコードの構成が必要ならば、githubの上で関連するコードをダウンロードすることができます.https://github.com/carson0408/JredisDemo.git
どのようにMavenプロジェクトを構築するかについては、前のブログで詳しく述べたが、ここでは述べない.Jedisは必要なJarバッグを直接話します.
以上のコードはredisの5種類のデータ構造の具体的な操作を述べて、また詳しい注釈があって、いくつかの方法の特性を理解することができて、Redisの使用に対して更に深い理解があることを便利にします.
1.pomを構成する.xml
どのようにMavenプロジェクトを構築するかについては、前のブログで詳しく述べたが、ここでは述べない.Jedisは必要なJarバッグを直接話します.
4.0.0
com.carson
JredisTest
1.0-SNAPSHOT
redis.clients
jedis
2.9.0
commons-pool
commons-pool
20030825.183949
junit
junit
4.12
org.apache.logging.log4j
log4j-core
2.10.0
log4j
log4j
1.2.17
2.Stringの操作
import redis.clients.jedis.BitOP;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
import java.util.logging.Logger;
public class StringDemo {
/**
* redis
* @return
*/
public static Jedis getJedis(){
JedisShardInfo info = new JedisShardInfo("127.0.0.1", 6379);
Jedis jedis = new Jedis(info);
return jedis;
}
public static void testString(Jedis jedis){
// set、get、incr、decr , String key String , value 、
try {
jedis.set("name", "carson");
jedis.set("age", "25");
jedis.set("money", "26.5");
jedis.incr("age");
jedis.incrBy("age", 10);
String age = jedis.get("age");
String name = jedis.get("name");
System.out.println(name + ":" + age);
System.out.println("age:" + jedis.decrBy("age", 5));
}catch(Exception e){
e.printStackTrace();
}
// System.out.println(jedis.incrByFloat("money",3.5));
//setnx key_name value: , key_name, , 。
try {
jedis.setnx("money", "31");
System.out.println(" money:" + jedis.get("money"));
}catch(Exception e){
e.printStackTrace();
}
//append
try {
jedis.append("name", " Jack");
System.out.println("append name :" + jedis.get("name"));
}catch(Exception e){
e.printStackTrace();
}
//getrange、setrange
try {
System.out.println(" :"+jedis.getrange("name", 0, 3));
jedis.setrange("name", 5, "abc");
System.out.println(" name :" + jedis.get("name"));
}catch(Exception e){
e.printStackTrace();
}
//setbit key_name offset value: , offset
//getbit key_name offset: , offset 。
try {
System.out.println("name :" + jedis.getbit("name", 5));
jedis.setbit("name", 5, true);
System.out.println(" 5 :" + jedis.get("name"));
}catch(Exception e){
e.printStackTrace();
}
// key
try {
System.out.println("name :" + jedis.exists("name"));
}catch(Exception e){
e.printStackTrace();
}
//mset key1 value1 [key2 value2 ...]:
//mget key1 [key2 ....]:
try {
System.out.println(" name、name1、name2 :"+jedis.mget("name", "name1", "name2"));
jedis.mset("one","1","two","2","three","3");
System.out.println(" one、two、three :"+jedis.mget("one","two","three"));
}catch(Exception e){
e.printStackTrace();
}
//expire key time: key
try {
System.out.println(" name :" + jedis.get("name"));
jedis.expire("name",5);
Thread.sleep(6000);
System.out.println(" name :"+jedis.get("name"));
}catch(Exception e){
e.printStackTrace();
}
//setex key time value: , , set+expire 。
try{
jedis.setex("name",5,"carson");
System.out.println(" name :"+jedis.get("name"));
Thread.sleep(6000);
System.out.println(" name :"+jedis.get("name"));
}catch(Exception e){
e.printStackTrace();
}
}
}
3.List操作
import redis.clients.jedis.BinaryClient;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
public class ListDemo {
/**
* redis
* @return
*/
public static Jedis getJedis(){
JedisShardInfo info = new JedisShardInfo("127.0.0.1", 6379);
Jedis jedis = new Jedis(info);
return jedis;
}
/**
* List
* List , Java ,
* @param jedis
*/
public static void testList(Jedis jedis){
//lpush list_name value: ,
//rpush list_name value
//lpop list_name :
//rpop list_name :
//lrange list_name start end: start end
try{
jedis.lpush("list_","book");
jedis.rpush("list_","table");
jedis.lpush("list_","pen");
jedis.rpush("list_","pencil");
jedis.rpush("list_","watch");
jedis.lpush("list_","ball");
jedis.rpush("list_","water");
jedis.rpush("list_","bag");
System.out.println(" list_ :"+jedis.lrange("list_",0,-1));
System.out.println(" :"+jedis.lpop("list_"));
System.out.println(" :"+jedis.rpop("list_"));
}catch (Exception e){
e.printStackTrace();
}
finally {
System.out.println();
}
//lrem list_name count value: value , count>0 , value , count
//count<0 , value , count
//count=0 value
try{
System.out.println(" list_ :"+jedis.lrange("list_",0,-1));
jedis.lrem("list_",2,"book");
System.out.println(" book list_ :"+jedis.lrange("list_",0,-1));
}catch(Exception e){
e.printStackTrace();
}
finally {
System.out.println();
}
//lindex list_name index: list_name index
//lset list_name index value: index value
//ltrim list_name start end: start end
try{
System.out.println(" list_ 3 :"+jedis.lindex("list_",3));
jedis.lset("list_",2,"banana");
System.out.println(" list_ :"+jedis.lrange("list_",0,-1));
jedis.ltrim("list_",1,3);
System.out.println(" list_ "+jedis.lrange("list_",0,-1));
}catch(Exception e){
e.printStackTrace();
}
finally {
System.out.println();
}
//llen list_name:
//linsert list_name before|after pivot value : value pivot , pivot , 。 pivot , pivot
try{
long size = jedis.llen("list_");
System.out.println(size);
System.out.println(" list_ :"+jedis.lrange("list_",0,-1));
jedis.linsert("list_", BinaryClient.LIST_POSITION.BEFORE,"banana","apple");
System.out.println(" list_ :"+jedis.lrange("list_",0,-1));
jedis.linsert("list_", BinaryClient.LIST_POSITION.AFTER,"banana","apple");
System.out.println(" list_ :"+jedis.lrange("list_",0,-1));
}catch(Exception e){
e.printStackTrace();
}
finally {
System.out.println();
}
//rpoplpush list_name source dest: source , dest
try{
int size = Integer.parseInt(""+jedis.llen("list_"));
System.out.println(" list_ :"+jedis.lrange("list_",0,-1));
for(int i=0;i
4.Set操作
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
public class SetDemo {
/**
* redis
* @return
*/
public static Jedis getJedis(){
JedisShardInfo info = new JedisShardInfo("127.0.0.1", 6379);
Jedis jedis = new Jedis(info);
return jedis;
}
/**
* set , Java , 、
* @param jedis
*/
public static void testSet(Jedis jedis){
//sadd set_name value1 [value2 ...]:
//smembers set_name:
//scard set_name:
try{
jedis.sadd("myset","apple","banana","orange");
System.out.println(jedis.smembers("myset"));
System.out.println(jedis.scard("myset"));
}catch(Exception e){
e.printStackTrace();
}
finally{
System.out.println();
}
//srem set_name value1 [value2 ....]: ,
//spop set_name: ,
try{
System.out.println(" :"+jedis.srem("myset","banana"));
System.out.println(" myset :"+jedis.smembers("myset"));
jedis.sadd("myset","peer","knif","ball");
System.out.println(" myset:"+jedis.smembers("myset"));
System.out.println(" :"+jedis.spop("myset"));
System.out.println(" myset:"+jedis.smembers("myset"));
}catch(Exception e){
e.printStackTrace();
}
finally{
System.out.println();
}
//smove source_set dest_set item: source_set item, source_set item, item dest_set ,
// item , 1, 0.
//sismember set_name item: item set_name
try{
System.out.println(" myset :"+jedis.smembers("myset"));
String[] strs = {"banana","apple","peer","melon","berry"};
int size = strs.length;
for(int i=0;i
5.Hash操作
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
import java.util.HashMap;
public class HashDemo {
/**
* redis
* @return
*/
public static Jedis getJedis(){
JedisShardInfo info = new JedisShardInfo("127.0.0.1", 6379);
Jedis jedis = new Jedis(info);
return jedis;
}
/**
*
* @param jedis
*/
public static void testHash(Jedis jedis){
//hset hash_name key value: hash hash_name key-value
//hmset hash_name Map hash: hash , map hmset
//hget hash_name key: hash hash_name key value
//hmget hash_name key1 [key2 key3...]: key
try{
jedis.hset("myhash","name","Carson");
System.out.println(" myhash name :"+jedis.hget("myhash","name"));
HashMap map = new HashMap();
map.put("age","20");
map.put("sex","female");
map.put("birth","0317");
jedis.hmset("myhash",map);
System.out.println(" key value:"+jedis.hmget("myhash","name","age","sex"));
}catch(Exception e){
e.printStackTrace();
}finally {
System.out.println();
}
//hkeys hash_name: hash key
//hvals hash_name: hash values
try{
System.out.println(" myhash key:"+jedis.keys("myhash"));
System.out.println(" myhash value:"+jedis.hvals("myhash"));
}catch(Exception e){
e.printStackTrace();
}finally{
System.out.println();
}
//hgetall hash_name: hash
//hexists hash_name key: key hash
try{
System.out.println(" myhash :"+jedis.hgetAll("myhash"));
System.out.println(" name myhash :"+jedis.hexists("myhash","name"));
}catch(Exception e){
e.printStackTrace();
}finally {
System.out.println();
}
//hlen hash_name: hash
//hdel hash_name key1 [key2...]: hash
try{
System.out.println(" myhash :"+jedis.hlen("myhash"));
System.out.println(" myhash :"+jedis.hgetAll("myhash"));
jedis.del("name","sex");
System.out.println(" myhash :"+jedis.hgetAll("myhash"));
}catch(Exception e){
e.printStackTrace();
}finally {
System.out.println();
}
//hincrby hash_name key count: hash key count。
//hde
try{
jedis.hset("myhash","money","200");
System.out.println("incr money :"+jedis.hget("myhash","money"));
jedis.hincrBy("myhash","money",10);
System.out.println("incr money :"+jedis.hget("myhash","money"));
}catch(Exception e){
e.printStackTrace();
}
}
public static void main(String[] args){
testHash(getJedis());
}
}
6.Zset操作
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisShardInfo;
import java.util.HashMap;
public class ZsetDemo {
/**
* redis
* @return
*/
public static Jedis getJedis(){
JedisShardInfo info = new JedisShardInfo("127.0.0.1", 6379);
Jedis jedis = new Jedis(info);
return jedis;
}
public static void testZset(Jedis jedis){
//zadd zset_name score member:zset_name key member,value score, , score , member 。
//zadd zset_name Mapmap: zset_name member、score map。
//zcard zset_name : zset_name
try{
jedis.zadd("myzset",100.0,"id:1001");
HashMap map = new HashMap();
map.put("id:1002",50.0);
map.put("id:1003",125.0);
map.put("id:1004",75.0);
map.put("id:1005",180.0);
jedis.zadd("myzset",map);
System.out.println(" myzset :"+jedis.zcard("myzset"));
}catch (Exception e){
e.printStackTrace();
}finally {
System.out.println();
}
//zcount zset_name min max: ,score >=min <=max
//zrangeByscore(zrangeByscoreWithscores) zset_name start end [withscores]: score
//zrange(zrangeWithscores) zset_name start end [withscores]: , score
//zrevrange(zrevrangeWithscores) zset_name start end [withscores]: , score
//zrevrangeByscore(zrevrangeByscoreWithscores) zset_name start end [withscores]: score ,score
try{
System.out.println("myzset score 100 200 :"+jedis.zcount("myzset",100,200));
System.out.println(" score :"+jedis.zrangeByScore("myzset",100,200));
System.out.println(" score score:"+jedis.zrangeByScoreWithScores("myzset",100,200));
System.out.println(" score :"+jedis.zrange("myzset",0,-1));
System.out.println(" score score :"+jedis.zrangeWithScores("myzset",0,-1));
System.out.println(" score :"+jedis.zrevrange("myzset",0,-1));
System.out.println(" score score :"+jedis.zrevrangeWithScores("myzset",0,-1));
System.out.println(" score :"+jedis.zrevrangeByScore("myzset",200,100));
System.out.println(" score score :"+jedis.zrevrangeByScoreWithScores("myzset",200,100));
}catch(Exception e){
e.printStackTrace();
}finally {
System.out.println();
}
//zrank zset_name member: member zset_name ,score , 0
//zrevrank zset_name member: member zset_name ,score , 0.
try{
System.out.println(" id:1002 :"+jedis.zrank("myzset","id:1002"));
System.out.println(" id:1002 :"+jedis.zrevrank("myzset","id:1002"));
}catch (Exception e){
e.printStackTrace();
}finally {
System.out.println();
}
//zrem zset_name member [member...]: member, member
//zremrangebyrank zset_name start end:
//zremrangebyscore zset_name min max: score
try{
System.out.println(" myzset:"+jedis.zrange("myzset",0,-1));
jedis.zrem("myzset","id:1001","id:1010");
System.out.println("zrem myzset :"+jedis.zrangeWithScores("myzset",0,-1));
jedis.zremrangeByRank("myzset",0,1);
System.out.println("zremByRank myzset :"+jedis.zrangeWithScores("myzset",0,-1));
jedis.zremrangeByScore("myzset",150,200);
System.out.println("zremrangeByScore myzset :"+jedis.zrangeWithScores("myzset",0,-1));
}catch(Exception e){
e.printStackTrace();
}finally {
System.out.println();
}
}
public static void main(String[] args){
testZset(getJedis());
}
}
以上のコードはredisの5種類のデータ構造の具体的な操作を述べて、また詳しい注釈があって、いくつかの方法の特性を理解することができて、Redisの使用に対して更に深い理解があることを便利にします.