前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >redis在java客户端的操作

redis在java客户端的操作

作者头像
用户2146856
发布2018-05-18 15:55:03
1.5K0
发布2018-05-18 15:55:03
举报
文章被收录于专栏:帅小子的日常帅小子的日常

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

直接上代码:

代码语言:javascript
复制
     // 创建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)连接池不用的时候关闭

代码语言:javascript
复制
    // 创建连接池
        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();

代码:

代码语言:javascript
复制
@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();
    }
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018-04-23 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档