在java中使用redis
在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 }
关注我的公众号