Jedis-Redis的客户端--入门
来源:互联网 发布:北京python培训班 编辑:程序博客网 时间:2024/06/05 01:20
你可以选择用命令来操作redis,也可以使用客户端来操作redis。现在基本上主流的语言都有客户端支持redis的操作,比如java的客户端:有Jedis、Redisson、Jredis、JDBC-Redis、等其中官方推荐使用Jedis和Redisson。在企业中用的最多的就是Jedis,下面我们就重点学习下Jedis。Jedis同样也是托管在github上,地址:https://github.com/xetorthio/jedis
关于jedis的安装就是傻瓜式安装,很简单。
下面介绍jedis的使用
1.新建一个maven项目并添加jedis依赖
<!-- redis的客户端--jedis --> <dependency> <groupId>redis.clients</groupId> <artifactId>jedis</artifactId> <version>2.6.0</version> </dependency>
2.编写jedis的第一个例子
package cn.itcast.redis;import redis.clients.jedis.Jedis;public class JedisDemo { public static void main(String[] args) { // 构造jedis对象 Jedis jedis = new Jedis("127.0.0.1", 6379); // 向redis中添加数据 jedis.set("mytest", "123"); // 从redis中读取数据 String value = jedis.get("mytest"); System.out.println(value); // 关闭连接 jedis.close(); }}
以上说明Jedis通过Java代码连接到Redis服务拿到数据。
该示例中存在的问题是:每次都要创建连接并关闭,所以要使用连接池。
3.编写jedis的第二个例子:Jedis连接池
package cn.itcast.redis;import redis.clients.jedis.Jedis;import redis.clients.jedis.JedisPool;import redis.clients.jedis.JedisPoolConfig;public class JedisPoolDemo { public static void main(String[] args) { // 构建连接池配置信息 JedisPoolConfig jedisPoolConfig = new JedisPoolConfig(); // 设置最大连接数 jedisPoolConfig.setMaxTotal(50); // 构建连接池 JedisPool jedisPool = new JedisPool(jedisPoolConfig, "127.0.0.1", 6379); // 从连接池中获取连接 Jedis jedis = jedisPool.getResource(); // 读取数据 System.out.println(jedis.get("mytest")); // 将连接还回到连接池中 jedisPool.returnResource(jedis); // 释放连接池 jedisPool.close(); }}
4.编写jedis的第三例子:分片式集群
一个Jedis可以同时开启多个Redis服务
如果此时我们要做一个set abc 123操作,那么问题来了,连接了三个Redis我把数据放在哪个里面呢?如果每个里面都放abc 123没意义。
此时会计算key的hash值,把abc 123放到对应的Redis上。那么就要保证set与get计算的是同一个Redis才能获取对应的数据,该算法叫一致性哈希算法。
分片式集群存在的问题:
1、 水平扩展集群时,必须做数据的迁移
如果在上示意图基础上再添加一个Redis那么计算key的hash值就会发生变化。如果数据不迁移就会导致拿不到数据。做数据扩展是很不方便的。
2、 集群由客户端控制,每个集群中的节点并不知道自己处于集群环境
各Redis不知道自己处于集群环境,那么维护这个集群就会变得困难,全部由客户端维护也是不现实的。
存在上述两个问题是不是就说明分片式集群就不可用了呢?不是的,在redis3.0发布之前,都是使用分片式集群。
下面为分片式集群使用的代码:
package cn.itcast.redis;import java.util.ArrayList;import java.util.List;import redis.clients.jedis.JedisPoolConfig;import redis.clients.jedis.JedisShardInfo;import redis.clients.jedis.ShardedJedis;import redis.clients.jedis.ShardedJedisPool;/** * 集群式的连接池 * */public class ShardedJedisPoolDemo { public static void main(String[] args) { // 构建连接池配置信息 JedisPoolConfig poolConfig = new JedisPoolConfig(); // 设置最大连接数 poolConfig.setMaxTotal(50); // 定义集群信息 List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>(); shards.add(new JedisShardInfo("127.0.0.1", 6379)); shards.add(new JedisShardInfo("186.0.0.15", 6379)); // 定义集群连接池 ShardedJedisPool shardedJedisPool = new ShardedJedisPool(poolConfig, shards); ShardedJedis shardedJedis = null; try { // 从连接池中获取到jedis分片对象 shardedJedis = shardedJedisPool.getResource(); // 从redis中获取数据 String value = shardedJedis.get("mytest"); System.out.println(value); } catch (Exception e) { e.printStackTrace(); } finally { if (null != shardedJedis) { // 关闭,检测连接是否有效,有效则放回到连接池中,无效则重置状态 shardedJedis.close(); } } // 关闭连接池 shardedJedisPool.close(); }}
熟悉了redis的使用方法,下面介绍redis与spring的集成
- Jedis-Redis的客户端--入门
- Redis的java客户端Jedis
- redis的java客户端jedis
- Redis的java客户端Jedis
- Redis的客户端实现-Jedis
- Redis的Java客户端Jedis
- Redis的Java客户端Jedis
- redis客户端--Jedis的使用
- Redis 客户端 Jedis的使用
- redis 客户端 jedis的使用
- redis 快速入门-集群-客户端(Jedis)测试
- Redis的java客户端Jedis的使用
- redis的java客户端jedis(二)jedis基本操作
- redis客户端jedis的简单使用
- redis的java客户端Jedis简单封装
- redis的Java客户端jedis使用示例
- Redis 的 Java 客户端开发包 Jedis
- 使用Redis的Java客户端Jedis
- Servlet入门开发
- ZOJ--3992--One-Dimensional Maze
- c# base64帮助类
- C# http帮助类
- windows 下安装tensorflow 和 python
- Jedis-Redis的客户端--入门
- Tablayout和Fragment联动+ListView接口变换展示
- android开发之多线程下载断点续传
- python学习笔记2
- HashMap存储原理
- 黑色星期五,外区亚马逊技嘉 GTX 1080 折合约3870元人民币
- 基于Docker的Ethereum环境部署(断网/连网)
- Ubuntu 12.04下安装GTK 2.24.10
- IO流总结(1)