redis在java客户端的操作
redis高性能,速度快,效率高的特点,用来做缓存服务器是很不错的选择。(和memcache相似)
redis在客户端的操作步骤:
1.redis单机版操作
1.1通过Jedis对象操作
(1)将安装redis服务的服务器的ip地址和redis的端口号作为构造参数传递给Jedis,用来创建一个Jedis对象
Jedis jedis = new Jedis(ip,port);
(2)通过第一步创建的jedis对象,操作redis的5大数据类型(hash类型,string类型,list类型,set类型,zset类型,有序)
jedis.set(string key,string value);
jedis.get(string key);
(3)操作完成后关闭jedis连接
jedis.close();
这种方法需要每次创建连接,关闭连接,比较浪费资源。因此使用下面的jedisPool连接池操作单机版redis
直接上代码:
// 创建jedis对象
Jedis jedis = new Jedis("ip", 6379);
// 操作string数据类型
jedis.set("username", "helloworld");
// 根据key取出对应的value值
String value = jedis.get("username");
// 值输出
System.out.println(value);
// 关闭连接
jedis.close();
1.2通过jedisPool操作jedis
(1)创建JedisPool连接池
JedisPool pool = new JedisPool(ip,port);
(2)通过连接池获得jedis对象
Jedis jedis = pool.getResource();
(3)获得jedis对象后,可以直接对redis数据类型进行操作
(4)操作完成后将jedis对象归还连接池,资源回收
(5)连接池不用的时候关闭
// 创建连接池
JedisPool pool = new JedisPool("ip地址", 6379);
// 获得连接对象
Jedis jedis = pool.getResource();
// 操作hash类型
Map<String, String> hash = new HashMap<>();
hash.put("name", "tom");
hash.put("age", "23");
hash.put("address", "长江路");
jedis.hmset("student", hash);
Map<String, String> all = jedis.hgetAll("student");
Set<Entry<String, String>> entrySet = all.entrySet();
for (Entry<String, String> entry : entrySet) {
String key = entry.getKey();
String value = entry.getValue();
System.out.println(key + ":" + value);
}// 关闭连接,连接池回收资源
jedis.close();
// 关闭连接池
pool.close();
2.操作集群redis-cluster
(1)创建集合列表,用来存放集群中的每一个redis实例
Set<HostAndPort> nodes = new Hash<HostAndPort>();
nodes.add(new HostAndPort(ip.port));
..以此类推,添加每一个redis实例
(2)第一步获得集合列表之后,创建redis集群实例对象
JedisCluster jedisCluster = new JedisCluster(nodes);//需要将redis的节点列表作为作为构造参数传递,创建集群对象
(3)集群中的每一个redis对象是通过数据槽进行区分的(redis-3.0.0中总共有0--16384个槽位),因此获得集群对象之后,可以对集群进行操作,每一个redis被访问的几率是相00的。
jedisCluster.set(String key,String value);
String value = jedisCluster.get(key);
(4)在系统关闭之前,将jedisCluster对象关闭。
jedisCluster.close();
代码:
@Test
public void testRedis_cluster() {
// 创建set集合
Set<HostAndPort> nodes = new HashSet<>();
// 将每一个节点的ip地址和端口号添加到集合中
nodes.add(new HostAndPort("192.168.xx.xxx", port));
nodes.add(new HostAndPort("192.168.xx.xxx", port));
nodes.add(new HostAndPort("192.168.xx.xxx", port));
nodes.add(new HostAndPort("192.168.xx.xxx", port));
nodes.add(new HostAndPort("192.168.xx.xxx", port));
nodes.add(new HostAndPort("192.168.xx.xxx", port));
// 创建jedisCluster对象,需要将创建的redis集合列表作为参数传递
JedisCluster jedisCluster = new JedisCluster(nodes);
// 通过集群对象操作redis
jedisCluster.set("address", "北京市长安街");
String value = jedisCluster.get("address");
// 打印结果
System.out.println(value);
// 系统关闭前,关闭jedisCluster对象
jedisCluster.close();
}
redis在java客户端的操作的更多相关文章
- 【转载】Redis的Java客户端Jedis的八种调用方式(事务、管道、分布式…)介绍
转载地址:http://blog.csdn.net/truong/article/details/46711045 关键字:Redis的Java客户端Jedis的八种调用方式(事务.管道.分布式…)介 ...
- Redis(九):Redis的Java客户端Jedis
Redis的Java客户端Jedis导航目录: 安装JDK 安装Eclipse Jedis所需要的Jar包 Jedis常用操作 JedisPool 安装JDK tar -zxvf jdk-7u67-l ...
- 9.Redis的Java客户端Jedis
Redis的Java客户端Jedis Jedis所需jar包 commons-pool-1.6.jar jedis-2.1.0.jar 1.Jedis常用操作(jedis中的api 和 我们在 l ...
- Redis解读(2):Redis的Java客户端
Redis的Java客户端 Redis不仅使用命令客户端来操作,而且可以使用程序客户端操作,其实配置和实现起来也非常容易. 现在基本上主流的语言都有客户端支持,比如Java.C.C#.C++.php. ...
- Tedis:淘宝的Redis的Java客户端开发包
Tedis:淘宝的Redis的Java客户端开发包 http://www.open-open.com/lib/view/open1389880631976.html Tedis Tedis是另 ...
- 使用Redis的Java客户端Jedis
转载自:http://aofengblog.blog.163.com/blog/static/631702120147298317919/ 前一篇文章<Redis命令指南>讲解了通过命令行 ...
- [转载] 使用Redis的Java客户端Jedis
转载自http://aofengblog.blog.163.com/blog/static/631702120147298317919/ 在实际的项目开发中,各种语言是使用Redis的客户端库来与Re ...
- Redis之Java客户端Jedis
导读 Redis不仅使用命令客户端来操作,而且可以使用程序客户端操作. 现在基本上主流的语言都有客户端支持,比如Java.C.C#.C++.php.Node.js.Go等. 在官方网站里列一些Java ...
- Zookeeper学习笔记(三)——java客户端代码操作
Zookeeper客户端java代码操作 上篇博客记录了shell命令操作zookeeper集群的方式,这次尝试采用java代码来操作.通过查阅API,发现并不困难. 1. 首先获得客户端与服务器的连 ...
随机推荐
- Struts(二十一):类型转换与复杂属性、集合属性配合使用
背景: 本章节主要以复杂属性.集合属性类型转化为例,来学习这两种情况下怎么使用. 复杂对象属性转换场景: 1.新建struts_04 web.xml <?xml version="1. ...
- 28.C++- 单例类模板(详解)
单例类 描述 指在整个系统生命期中,一个类最多只能有一个实例(instance)存在,使得该实例的唯一性(实例是指一个对象指针) , 比如:统计在线人数 在单例类里,又分为了懒汉式和饿汉式,它们的区 ...
- WPF经纬度控件
1.需求及思路 绘制一个控件,可以设置经纬度,经纬度用double类型表示,支持绑定数据,数据更改通知.错误验证,输入检校. 大致设计界面如下图: 2.主要代码 主要代码在于计算,double类型转换 ...
- 1.0 添加WEB API项目并按注释生成文档(多项目结构)
1.新建ASP.NET 项目,模板选择如图 2.选择Web API,并选择不进行身份验证方式 成功后我们看到这个结果. 至于其它三种身份验证方式,不太适合我的使用.而且这种方式也可以在代码里去实现身份 ...
- flask 操作mysql的两种方式-sql操作
flask 操作mysql的两种方式-sql操作 一.用常规的sql语句操作 # coding=utf-8 # model.py import MySQLdb def get_conn(): conn ...
- Django REST framework+Vue 打造生鲜超市(八)
九.个人中心功能开发 9.1.drf的api文档自动生成和 (1) url #drf文档,title自定义 path('docs',include_docs_urls(title='仙剑奇侠传')), ...
- 创建第一个Django项目
第一个Django项目 命令行下使用如下命令创建一个名为"mysite"的Django项目: django-admin startproject mysite 这将会在当前位置创建 ...
- python中关于文件的读取和写入
open()和close()方法:使用python的内置函数open()打开一个文件,创建一个file对象,相关的方法才可以调用它进行读写. file object = open(file_name ...
- 从源码看JDK提供的线程池(ThreadPoolExecutor)
一丶什么是线程池 (1)博主在听到线程池三个字的时候第一个想法就是数据库连接池,回忆一下,我们在学JavaWeb的时候怎么理解数据库连接池的,数据库创建连接和关闭连接是一个比较耗费资源的事情,对于那些 ...
- 各种电脑进入BIOS快捷键
组装机主板 品牌笔记本 品牌台式机 主板品牌 启动按键 笔记本品牌 启动按键 台式机品牌 启动按键 华硕主板 F8 联想笔记本 F12 联想台式机 F12 技嘉主板 F12 宏基笔记本 F12 惠普台 ...