在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. .NET Core下使用gRpc公开服务(SSL/TLS)

    一.前言 前一阵子关于.NET的各大公众号都发表了关于gRpc的消息,而随之而来的就是一波关于.NET Core下如何使用的教程,但是在这众多的教程中基本都是泛泛而谈,难以实际在实际环境中使用,而该篇 ...

  2. 异步CTP(Async CTP)为什么那样工作?

    对异步CTP感兴趣有很多原因.异步CTP使异步编程比以前更加容易了.它虽然没有Rx强大,但是更容易学.异步CTP介绍了两个新的关键字,async和await.异步方法(或Lambda表达式)必须返回v ...

  3. java 多线程(daemon)

    package com.example; public class App { public static void main(String[] args) { DoDaemon d1 = new D ...

  4. 嗅探、中间人sql注入、反编译--例说桌面软件安全性问题

    嗅探.中间人sql注入.反编译--例说桌面软件安全性问题 今天这篇文章不准备讲太多理论,讲我最近遇到的一个案例.从技术上讲,这个例子没什么高深的,还有一点狗屎运的成分,但是它又足够典型,典型到我可以讲 ...

  5. js实现DOM结构

    /* 编写一段js脚本生成下面的DOM结构.要求使用标准的DOM方法或属性 <div id='example'> <p class='slogan'>淘,你喜欢</p&g ...

  6. python _、__和__xx__的区别

    python _.__和__xx__的区别 本文为译文,版权属于原作者,在此翻译为中文分享给大家.英文原文地址:Difference between _, __ and __xx__ in Pytho ...

  7. C++中new和delete的背后

    关于 C++中new背后的行为, 以前已经写过一篇了 理解C++中new背后的行为, 但是里面也只是泛泛而谈,没有真凭实据, 下面我们从汇编的角度看C++编译器究竟在背后干了什么? 我们的代码很简单, ...

  8. Atitit  循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate).

    Atitit  循环(loop), 递归(recursion), 遍历(traversal), 迭代(iterate). 1.1. 循环算是最基础的概念, 凡是重复执行一段代码, 都可以称之为循环. ...

  9. ServletConfig对象详解

    在Servlet 的配置文件中,可以用一个或多个<init-param>标签为servlet配置一些初始化参数. 当servlet配置了初始化参数之后,web容器在创建servlet实例对 ...

  10. 为什么说基于TCP的移动端IM仍然需要心跳保活?

    1.前言 很多人认为,TCP协议自身先天就有KeepAlive机制,为何基于它的通讯链接,仍然需要在应用层实现额外的心跳保活?本文将从移动端IM实践的角度告诉你,即使使用的是TCP协议,应用层的心跳保 ...