在java中使用redis很簡單,只需要添加jedist.jar,通過它的api就可以了。而且,api和redis的語法幾乎完全相同。以下簡單的測試:
參考:http://www.runoob.com/redis/redis-java.html
1 package com.test.redis; 2 3 import org.junit.Test; 4 import redis.clients.jedis.Jedis; 5 6 import java.util.HashMap; 7 import java.util.List; 8 import java.util.Map; 9 import java.util.Set; 10 11 /** 12 * 學習使用redis 13 * Created by Administrator on 2016/2/19. 14 */ 15 public class HelloRedis { 16 private static final Jedis jedis = new Jedis("127.0.0.1",6379); 17 18 public static void main(String[] args) { 19 jedis.set("test","Hello Redis"); 20 String test = jedis.get("test"); 21 System.out.println(test); 22 jedis.del("test"); 23 } 24 25 /** 26 * 一些操作 27 */ 28 @Test 29 public void testOption(){ 30 //查看redis是否運行 31 System.out.println(jedis.ping()); 32 String s = jedis.flushDB(); 33 System.out.println("清空后:"+s); 34 35 System.out.println(jedis.echo("foo")); 36 37 jedis.set("foo","存儲變量foo"); 38 Boolean is = jedis.exists("foo"); 39 System.out.println("foo是否存在:"+is); 40 41 Set<String> keys = jedis.keys("*"); 42 System.out.println("數據庫中所有的keys:"+keys); 43 44 Set<String> keys1 = jedis.keys("f*"); 45 System.out.println("數據庫中以 f 為前綴的keys"+keys1); 46 47 String foo = jedis.type("foo"); 48 System.out.println("foo的類型:"+foo); 49 50 jedis.del("foo"); 51 } 52 53 /** 54 * jedis存儲字符串 55 */ 56 @Test 57 public void testString(){ 58 jedis.flushDB(); 59 //--添加數據-- 60 jedis.set("name","miao"); 61 System.out.println("取出name:"+jedis.get("name")); 62 63 //取出元數據,並修改 64 String name = jedis.getSet("name", "被取出后修改"); 65 System.out.println("取出:"+name+" 修改:"+jedis.get("name")); 66 String name1 = jedis.getrange("name", 0,5 ); 67 System.out.println("獲取value值並截取(中文容易亂碼):"+name1); 68 //--覆蓋-- 69 jedis.set("name","覆蓋了"); 70 System.out.println("取出重設置后的name:"+jedis.get("name")); 71 //拼接 72 jedis.append("name"," be stronger!"); 73 System.out.println("拼接后的name:"+jedis.get("name")); 74 75 jedis.del("name"); 76 System.out.println("刪除后的name:"+jedis.get("name")); 77 //設置多個 78 jedis.mset("name","miao","age","25","birth","1991-02-22"); 79 jedis.incr("age");//+1 80 System.out.println(jedis.get("name")+"-"+jedis.get("age")+"-"+jedis.get("birth")); 81 jedis.del("name","age","birth"); 82 } 83 84 /** 85 * redis操作map 86 */ 87 @Test 88 public void testMap(){ 89 jedis.flushDB(); 90 //--添加數據-- 91 Map<String,String> map = new HashMap<>(); 92 map.put("name","miao"); 93 map.put("age","35"); 94 map.put("birth","1991-02-33"); 95 jedis.hmset("user",map); 96 //取出 97 List<String> user = jedis.hmget("user","name","age","birth"); 98 System.out.println(user); 99 Map<String, String> user1 = jedis.hgetAll("user");//取出user 100 System.out.println("user1="+user1); 101 // jedis.del("user"); 102 103 //刪除某個屬性 104 jedis.hdel("user","birth"); 105 System.out.println(jedis.hmget("user","name","age","birth")); 106 Long count = jedis.hlen("user");//user的屬性的個數 107 System.out.println("屬性個數:"+count); 108 Boolean is = jedis.exists("user");//是否存在 109 System.out.println("是否存在:"+is); 110 Set<String> ukeys = jedis.hkeys("user");//user的所有屬性 111 System.out.println(ukeys); 112 List<String> uvals = jedis.hvals("user");//user的所有屬性值 113 System.out.println(uvals); 114 115 jedis.del("user"); 116 } 117 118 /** 119 * redis操作list 120 */ 121 @Test 122 public void testList(){ 123 jedis.flushDB(); 124 //查看 125 List<String> users = jedis.lrange("users", 0, -1); 126 System.out.println("list:"+users); 127 //向左插入 128 jedis.lpush("users","miao"); 129 jedis.lpush("users","rui"); 130 jedis.lpush("users","feng"); 131 //向右插入 132 jedis.rpush("users","ming"); 133 jedis.rpush("users","hong"); 134 jedis.rpush("users","xing"); 135 System.out.println("(注意順序)插入的結果:"+jedis.lrange("users",0,-1)); 136 //長度 137 Long len = jedis.llen("users"); 138 System.out.println("list長度:"+len); 139 //子串 140 System.out.println("取出索引0到1的數據:"+jedis.lrange("users",0,1)); 141 //修改單個值 142 jedis.lset("users",0,"我變成第一個"); 143 System.out.println("修改單個值后:"+jedis.lrange("users",0,-1)); 144 //獲取指定下標的值 145 String users1 = jedis.lindex("users", 0); 146 System.out.println("下標0為:"+users1); 147 //刪除指定下標的值 148 Long lrem = jedis.lrem("users", 0,"我變成第一個"); 149 System.out.println("刪除下標0結果:"+lrem+" |"+jedis.lrange("users",0,-1)); 150 //刪除區間之外的值 151 // jedis.ltrim("users",1,2); 152 //出棧 153 String users2 = jedis.lpop("users"); 154 System.out.println("左出棧:"+users2+" |"+jedis.lrange("users",0,-1)); 155 String users3 = jedis.rpop("users"); 156 System.out.println("右出棧:"+users3+" |"+jedis.lrange("users",0,-1)); 157 158 jedis.del("users"); 159 System.out.println(jedis.lrange("users",0,-1)); 160 } 161 162 /** 163 * jedis set 164 */ 165 @Test 166 public void testSet(){ 167 //添加 168 jedis.sadd("user","miao"); 169 jedis.sadd("user","rui"); 170 jedis.sadd("user","feng"); 171 jedis.sadd("user","ming"); 172 jedis.sadd("user","hong"); 173 jedis.sadd("user","xing"); 174 //查看 175 Set<String> user = jedis.smembers("user"); 176 System.out.println("set: "+user); 177 //移除 178 jedis.srem("user","miao"); 179 System.out.println("移除后: "+jedis.smembers("user")); 180 //判斷是否存在 181 Boolean is = jedis.sismember("user", "rui"); 182 System.out.println("rui是否存在: "+is); 183 //隨機取出一個 184 String one = jedis.srandmember("user"); 185 System.out.println(one); 186 System.out.println(jedis.srandmember("user",2)); 187 //返回個數 188 Long count = jedis.scard("user"); 189 System.out.println("user個數:"+count); 190 191 jedis.del("user"); 192 193 } 194 195 /** 196 * zset 197 * 有序的set 198 */ 199 @Test 200 public void testZset(){ 201 jedis.flushDB(); 202 //添加 203 jedis.zadd("zkey",12.1,"十二"); 204 jedis.zadd("zkey",11.1,"11"); 205 jedis.zadd("zkey",21.1,"20"); 206 jedis.zadd("zkey",41.1,"41"); 207 jedis.zadd("zkey",4,"4"); 208 //查看 209 Set<String> zkey = jedis.zrange("zkey", 0, -1); 210 System.out.println("可以看到是以score排序的:"+zkey); 211 } 212 213 /** 214 * 排序 215 */ 216 @Test 217 public void testSort(){ 218 jedis.del("list"); 219 jedis.rpush("list","1"); 220 jedis.rpush("list","4"); 221 jedis.rpush("list","2"); 222 jedis.rpush("list","20"); 223 jedis.rpush("list","5"); 224 jedis.rpush("list","6"); 225 jedis.rpush("list","67"); 226 System.out.println(jedis.lrange("list",0,-1)); 227 System.out.println("排序:"+jedis.sort("list")); 228 System.out.println("排序不影響原存儲:"+jedis.lrange("list",0,-1)); 229 } 230 231 232 233 }