在java中使用redis
在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的更多相关文章
- JAVA中使用Redis
上节讲解了如何在centos上安装redis,点击查看.本节我们学习在java中使用redis.需要将jedis-*.jar添加到classpath(点击下载),如果使用连接池还需要commons-p ...
- Redis入门教程(三)— Java中操作Redis
在Redis的官网上,我们可以看到Redis的Java客户端众多 其中,Jedis是Redis官方推荐,也是使用用户最多的Java客户端. 开始前的准备 使用jedis使用到的jedis-2.1.0. ...
- Redis笔记(六):Java中使用Redis
Java程序使用Redis 添加依赖包 Maven依赖方式 <dependency> <groupId>redis.clients</groupId> <ar ...
- java中使用redis --- Hash的简单应用
1.java代码 public class RedisTest01 { public static void main(String[] args) { // connect redis server ...
- Java中的Redis 哨兵高可用性
让我们探索Redis Sentinel,看看如何在Java上运行它,一起来看看,最近get了很多新知识,分享给大家参考学习.需要详细的java架构思维导图路线也可以评论获取! 什么是Redis哨兵? ...
- java中使用 redis (转载)
jedis是一个著名的key-value存储系统,而作为其官方推荐的java版客户端jedis也非常强大和稳定,支持事务.管道及有jedis自身实现的分布式. 在这里对jedis关于事务.管道和分布式 ...
- Redis(2)用jedis实现在java中使用redis
昨天已经在windows环境下安装使用了redis. 下面准备在java项目中测试使用redis. redis官网推荐使用jedis来访问redis.所以首先准备了jedis的jar包,以及需要依赖的 ...
- 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 ...
- Java中操作Redis
一.server端安装 1.下载 https://github.com/MSOpenTech/redis 可看到当前可下载版本:redis2.6 下载后的文件为: 解压后,选择当前64位win7系统对 ...
随机推荐
- halcon车牌的识别
read_image (Audi2, 'audi2') fill_interlace (Audi2, ImageFilled, 'odd') dev_set_color('green') thresh ...
- storysnail的Linux串口编程笔记
storysnail的Linux串口编程笔记 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据Ge ...
- git 撤销提交的文件
一.问题 近期在使用git时遇到一个问题,就是在git上传文件时,将一个100兆的大文件添加到了git,并执行了push操作,这时在上传完毕后,会提示这个错误 Large files detected ...
- Yii2中的零碎知识点
PHP最佳实践 1 PHP获取时间戳:echo time(); 时间戳转换 date('Y-m-d H:i:s', $时间戳); 2 linux 显示命令 ls 显示所有文件夹 查看命令:tail ...
- centos7 memcached+memagent 集群
1. 安装libevent wget https://github.com/libevent/libevent/releases/download/release-2.0.22-stable/libe ...
- reactor & proactor 笔记
1. 基本概念 1.1 同步/异步,针对应用程序和内核交互而言. 同步:进程触发IO操作等待或轮询查看IO操作是否完成: 异步:进程触发IO操作后仅需自身的处理,IO操作完成后会得到通知(异步的特点) ...
- kali linux Python开发环境初始化
kali linux Python 黑客编程1 开发环境初始化 为什么要选择Python? Python作为目前Linux系统下最流行的编程语言之一,对于安全工作者的作用可以和C++相提并论.Pyth ...
- Java提高篇(三四)-----fail-fast机制
在JDK的Collection中我们时常会看到类似于这样的话: 例如,ArrayList: 注意,迭代器的快速失败行为无法得到保证,因为一般来说,不可能对是否出现不同步并发修改做出任何硬性保证.快速失 ...
- python 实现web框架simfish
python 实现web框架simfish 本文主要记录本人利用python实现web框架simfish的过程.源码github地址:simfish WSGI HTTP Server wsgi模块提供 ...
- Java连接Oracle数据库开发银行管理系统【二、设计篇】
一.总体分析 此系统的实现并不难,但是如何更好的设计出实现方式还是需要更深入的分析,例如:如果再增加其他功能,是不是需要变动的 代码很少,只是直接再增加一点功能就可以了呢?如果使用的不是Ora ...