在java中使用redis很简单,只需要添加jedist.jar,通过它的api就可以了。而且,api和redis的语法几乎完全相同。以下简单的测试:

参考:http://www.runoob.com/redis/redis-java.html

 package com.test.redis;

 import org.junit.Test;
import redis.clients.jedis.Jedis; import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set; /**
* 学习使用redis
* Created by Administrator on 2016/2/19.
*/
public class HelloRedis {
private static final Jedis jedis = new Jedis("127.0.0.1",6379); public static void main(String[] args) {
jedis.set("test","Hello Redis");
String test = jedis.get("test");
System.out.println(test);
jedis.del("test");
} /**
* 一些操作
*/
@Test
public void testOption(){
//查看redis是否运行
System.out.println(jedis.ping());
String s = jedis.flushDB();
System.out.println("清空后:"+s); System.out.println(jedis.echo("foo")); jedis.set("foo","存储变量foo");
Boolean is = jedis.exists("foo");
System.out.println("foo是否存在:"+is); Set<String> keys = jedis.keys("*");
System.out.println("数据库中所有的keys:"+keys); Set<String> keys1 = jedis.keys("f*");
System.out.println("数据库中以 f 为前缀的keys"+keys1); String foo = jedis.type("foo");
System.out.println("foo的类型:"+foo); jedis.del("foo");
} /**
* jedis存储字符串
*/
@Test
public void testString(){
jedis.flushDB();
//--添加数据--
jedis.set("name","miao");
System.out.println("取出name:"+jedis.get("name")); //取出元数据,并修改
String name = jedis.getSet("name", "被取出后修改");
System.out.println("取出:"+name+" 修改:"+jedis.get("name"));
String name1 = jedis.getrange("name", 0,5 );
System.out.println("获取value值并截取(中文容易乱码):"+name1);
//--覆盖--
jedis.set("name","覆盖了");
System.out.println("取出重设置后的name:"+jedis.get("name"));
//拼接
jedis.append("name"," be stronger!");
System.out.println("拼接后的name:"+jedis.get("name")); jedis.del("name");
System.out.println("删除后的name:"+jedis.get("name"));
//设置多个
jedis.mset("name","miao","age","25","birth","1991-02-22");
jedis.incr("age");//+1
System.out.println(jedis.get("name")+"-"+jedis.get("age")+"-"+jedis.get("birth"));
jedis.del("name","age","birth");
} /**
* redis操作map
*/
@Test
public void testMap(){
jedis.flushDB();
//--添加数据--
Map<String,String> map = new HashMap<>();
map.put("name","miao");
map.put("age","35");
map.put("birth","1991-02-33");
jedis.hmset("user",map);
//取出
List<String> user = jedis.hmget("user","name","age","birth");
System.out.println(user);
Map<String, String> user1 = jedis.hgetAll("user");//取出user
System.out.println("user1="+user1);
// jedis.del("user"); //删除某个属性
jedis.hdel("user","birth");
System.out.println(jedis.hmget("user","name","age","birth"));
Long count = jedis.hlen("user");//user的属性的个数
System.out.println("属性个数:"+count);
Boolean is = jedis.exists("user");//是否存在
System.out.println("是否存在:"+is);
Set<String> ukeys = jedis.hkeys("user");//user的所有属性
System.out.println(ukeys);
List<String> uvals = jedis.hvals("user");//user的所有属性值
System.out.println(uvals); jedis.del("user");
} /**
* redis操作list
*/
@Test
public void testList(){
jedis.flushDB();
//查看
List<String> users = jedis.lrange("users", 0, -1);
System.out.println("list:"+users);
//向左插入
jedis.lpush("users","miao");
jedis.lpush("users","rui");
jedis.lpush("users","feng");
//向右插入
jedis.rpush("users","ming");
jedis.rpush("users","hong");
jedis.rpush("users","xing");
System.out.println("(注意顺序)插入的结果:"+jedis.lrange("users",0,-1));
//长度
Long len = jedis.llen("users");
System.out.println("list长度:"+len);
//子串
System.out.println("取出索引0到1的数据:"+jedis.lrange("users",0,1));
//修改单个值
jedis.lset("users",0,"我变成第一个");
System.out.println("修改单个值后:"+jedis.lrange("users",0,-1));
//获取指定下标的值
String users1 = jedis.lindex("users", 0);
System.out.println("下标0为:"+users1);
//删除指定下标的值
Long lrem = jedis.lrem("users", 0,"我变成第一个");
System.out.println("删除下标0结果:"+lrem+" |"+jedis.lrange("users",0,-1));
//删除区间之外的值
// jedis.ltrim("users",1,2);
//出栈
String users2 = jedis.lpop("users");
System.out.println("左出栈:"+users2+" |"+jedis.lrange("users",0,-1));
String users3 = jedis.rpop("users");
System.out.println("右出栈:"+users3+" |"+jedis.lrange("users",0,-1)); jedis.del("users");
System.out.println(jedis.lrange("users",0,-1));
} /**
* jedis set
*/
@Test
public void testSet(){
//添加
jedis.sadd("user","miao");
jedis.sadd("user","rui");
jedis.sadd("user","feng");
jedis.sadd("user","ming");
jedis.sadd("user","hong");
jedis.sadd("user","xing");
//查看
Set<String> user = jedis.smembers("user");
System.out.println("set: "+user);
//移除
jedis.srem("user","miao");
System.out.println("移除后: "+jedis.smembers("user"));
//判断是否存在
Boolean is = jedis.sismember("user", "rui");
System.out.println("rui是否存在: "+is);
//随机取出一个
String one = jedis.srandmember("user");
System.out.println(one);
System.out.println(jedis.srandmember("user",2));
//返回个数
Long count = jedis.scard("user");
System.out.println("user个数:"+count); jedis.del("user"); } /**
* zset
* 有序的set
*/
@Test
public void testZset(){
jedis.flushDB();
//添加
jedis.zadd("zkey",12.1,"十二");
jedis.zadd("zkey",11.1,"11");
jedis.zadd("zkey",21.1,"20");
jedis.zadd("zkey",41.1,"41");
jedis.zadd("zkey",4,"4");
//查看
Set<String> zkey = jedis.zrange("zkey", 0, -1);
System.out.println("可以看到是以score排序的:"+zkey);
} /**
* 排序
*/
@Test
public void testSort(){
jedis.del("list");
jedis.rpush("list","1");
jedis.rpush("list","4");
jedis.rpush("list","2");
jedis.rpush("list","20");
jedis.rpush("list","5");
jedis.rpush("list","6");
jedis.rpush("list","67");
System.out.println(jedis.lrange("list",0,-1));
System.out.println("排序:"+jedis.sort("list"));
System.out.println("排序不影响原存储:"+jedis.lrange("list",0,-1));
} }

在java中使用redis的更多相关文章

  1. JAVA中使用Redis

    上节讲解了如何在centos上安装redis,点击查看.本节我们学习在java中使用redis.需要将jedis-*.jar添加到classpath(点击下载),如果使用连接池还需要commons-p ...

  2. Redis入门教程(三)— Java中操作Redis

    在Redis的官网上,我们可以看到Redis的Java客户端众多 其中,Jedis是Redis官方推荐,也是使用用户最多的Java客户端. 开始前的准备 使用jedis使用到的jedis-2.1.0. ...

  3. Redis笔记(六):Java中使用Redis

    Java程序使用Redis 添加依赖包 Maven依赖方式 <dependency> <groupId>redis.clients</groupId> <ar ...

  4. java中使用redis --- Hash的简单应用

    1.java代码 public class RedisTest01 { public static void main(String[] args) { // connect redis server ...

  5. Java中的Redis 哨兵高可用性

    让我们探索Redis Sentinel,看看如何在Java上运行它,一起来看看,最近get了很多新知识,分享给大家参考学习.需要详细的java架构思维导图路线也可以评论获取! 什么是Redis哨兵? ...

  6. java中使用 redis (转载)

    jedis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分布式 ...

  7. Redis(2)用jedis实现在java中使用redis

    昨天已经在windows环境下安装使用了redis. 下面准备在java项目中测试使用redis. redis官网推荐使用jedis来访问redis.所以首先准备了jedis的jar包,以及需要依赖的 ...

  8. Java中的Redis应用

    1.配置redis集群   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 <?xml version="1.0" encoding ...

  9. Java中操作Redis

    一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6 下载后的文件为: 解压后,选择当前64位win7系统对 ...

随机推荐

  1. 小谈 - web模仿手机打电话与正则表达式

    昨天遇到了一个很棘手的问题,就是手机端调用web端的页面,如果用编辑器插入的内容页面中有电话的的数据就要变一下格式,让手机端可以实现拨号的功能. 研究了半天就是没一点头绪,但是偶尔看到数据中每一个电话 ...

  2. windows 配置 apache + php

    需要工具 apache  下载地址 php for windows  (与apache同版本,使用线程安全)下载地址 vc (Visual Studio C++) 根据 apache 与 php 的版 ...

  3. hadoop使用问题

    前提 环境 ubuntu 安装hadoop 已经有一段时间 1.启动的时候提示 Connection reset by peer 这个查看日志,里面有说 ssh里面某个文件的权限太大 这个ssh里修改 ...

  4. [后端人员耍前端系列]KnockoutJs篇:使用KnockoutJs+Bootstrap实现分页

    一.引言 由于最近公司的系统需要改版,改版的新系统我打算使用KnockoutJs来制作Web前端.在做的过程中,遇到一个问题——如何使用KnockoutJs来完成分页的功能.在前一篇文章中并没有介绍使 ...

  5. 升级AutoMapper后遇到的“Missing map”与“Missing type map configuration”问题

    前几天发现 AutoMapper 3.3 的一个性能问题(详见:遭遇AutoMapper性能问题:映射200条数据比100条慢了近千倍),于是将 AutoMapper 升级至最新的 5.1.1 看是否 ...

  6. 可在广域网部署运行的QQ高仿版 -- GG叽叽(源码)

    前段时间看到园子里有朋友开发了QQ高仿版的程序,我也非常有兴趣,以前一直有个做即时聊天程序的梦,趁这段时间工作不是很忙,就开始动手来做这个事情.根据我以往积累下来的项目经验,实现QQ的基本功能,问题应 ...

  7. 使用Struts 拦截namespace进行权限控制

    有时候我需要在几个包下都需要进行同一个权限控制.如在购物网站中,我们需要进入个人中心.下订单.评价商品等等都需要进行登录权限控制,但是这几个模块并不是位于同一个package下.Struts提供的拦截 ...

  8. 翻译-Salt与Ansible全方位比较

    原文链接:http://jensrantil.github.io/salt-vs-ansible.html 作者: Jens Rantil 之前某些时候我需要评估配置管理系统.结合从他人得到的意见,我 ...

  9. JavaScript 误区

    接触JavaScript两年多遇到过各种错误,其中有一些让人防不胜防,原来对JavaScript的误会如此之深,仅以此文总结一下常见的各种想当然的误区 String replace string的re ...

  10. 大叔也说Xamarin~Android篇~为HttpClient共享Session,android与api的session共享机制

    回到目录 杂谈 在进行android进行开发时,我们的数据一般通过接口来获收,这里指的接口泛指web api,webservice,wcf,web应用程序等:它们做为服务端与数据库进行直接通讯,而AP ...