在java中使用redis
在java中使用redis很简单,只需要添加jedist.jar,通过它的api就可以了。而且,api和redis的语法几乎完全相同。以下简单的测试:
参考:http://www.runoob.com/redis/redis-java.html
![](/assets/blank.gif)
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 }
![](/assets/blank.gif)
本文转自Ryan.Miao博客园博客,原文链接:http://www.cnblogs.com/woshimrf/p/5204250.html,如需转载请自行联系原作者
在java中使用redis相关推荐
- c#获取对象的唯一标识_在 Java 中利用 redis 实现分布式全局唯一标识服务
作者: 杨高超 juejin.im/post/5a4984265188252b145b643e 获取全局唯一标识的方法介绍 在一个IT系统中,获取一个对象的唯一标识符是一个普遍的需求.在以前的单体应用 ...
- 在 Java 中利用 redis 实现 LBS 服务
前言 LBS(基于位置的服务) 服务是现在移动互联网中比较常用的功能.例如外卖服务中常用的我附近的店铺的功能,通常是以用户当前的位置坐标为基础,查询一定距离范围类的店铺,按照距离远近进行倒序排序. 自 ...
- java 结合redis队列_在 Java 中使用 redis 的消息队列服务
前言 关于 redis 我们前面已经讨论过了缓存.分布式锁.分布式唯一标识.LBS服务的用法,这里我们来谈谈利用 redis 来实现一个消息服务. 典型的消息服务是一个生产者和消费者模式的服务.一般是 ...
- java lbs_在 Java 中利用 redis 实现 LBS 服务
前言 LBS(基于位置的服务) 服务是现在移动互联网中比较常用的功能.例如外卖服务中常用的我附近的店铺的功能,通常是以用户当前的位置坐标为基础,查询一定距离范围类的店铺,按照距离远近进行倒序排序. 自 ...
- Redis笔记(六):Java中使用Redis
Java程序使用Redis 添加依赖包 Maven依赖方式 <dependency><groupId>redis.clients</groupId><arti ...
- Java中使用Redis Hash的3种方法
前言: 不用说Map是Java中最流行的数结构.Redis提供了一个与Java的Map结构非常相似的数据结构,它吸引了许多Java开发者的兴趣.已经有越来越多的Java库与Redis进行对话,其 ...
- Java中的Redis的思维导图_Redis思维导图
常见相关问题 Redis 有哪些功能?数据缓存功能 分布式锁的功能 支持数据持久化 支持事务 支持消息队列 Redis 为什么是单线程的? 因为 cpu 不是 Redis 的瓶颈,Redis 的瓶颈最 ...
- java 调用 spring,java中使用redis和spring中调用redis
1.需要的jar包,配置的pom.xml文件 redis.clients jedis 2.7.2 2.java调用 /** * @文件名称: JedisTest.java * @描述: TODO * ...
- Java中使用redis的完整实例及常用命令
一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6 下载windows平台文件: 解压后,选择当前64位w ...
最新文章
- 一流科技CEO袁进辉:人工智能产业化困局和机遇
- 并发 线程交替执行_并发与并行的区别
- python圆的周长和面积返回2个值的元组_初见Python2:列表和元组
- post修改服务器数据源,postgresql安装及配置超详细教程
- 基于预训练深度学习算法的番茄作物病害分类
- elasticsearch的javaAPI之index
- 第六届中文语法错误诊断大赛,哈工大讯飞联合实验室再获多项冠军
- .NET Remoting学习笔记(二)激活方式
- Mysql 语句执行顺序
- Mbps、MB、Mb和Mb/s的含义与区别
- 教你m4a怎么转换成mp3
- 【CF819C】Mister B and Beacons on Field 数学
- RL(Chapter 3): Finite Markov Decision Processes (有限马尔可夫决策过程)
- 刮刮彩票 (20 分)
- 计算机培训研修心语,学子榜样 | 2018级国家励志奖学金程春旭:不忘初心,砥砺前行...
- 这3种PDF合并的方法你一定要收藏
- k8s的DashBoard
- 开心网开启 网络营销新时代
- python找零钱问题_动态规划法(二)找零钱问题
- 如何使用SPSS按行显示和按列显示的摘要报告
热门文章
- Mozilla新特性只支持https网站
- yii2model 基本模型类
- DevExpress v15.1:WPF控件升级(四)
- Oracle 12C -- 扩展varchar2、nvarchar2、和raw数据类型的大小限制
- c#:Reflector+Reflexil 修改编译后的dll/exe文件
- 为机柜鸣冤:数据中心被忽视的重要设备
- oracle命令行导出、导入dmp文件
- 直播APP开发:直播人数是否该有限制
- 定制键盘输入处理(1503)
- Java Web(11) Spring MVC 返回Json