`
SpaceCity
  • 浏览: 98808 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

redis实例

阅读更多
package redis;

import java.util.ArrayList;
import java.util.List;
import redis.clients.jedis.Jedis;
import redis.clients.jedis.JedisPool;
import redis.clients.jedis.JedisPoolConfig;
import redis.clients.jedis.JedisShardInfo;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.ShardedJedisPool;

/**
* redis的Java客户端Jedis测试验证
*
* @author
*/
public class Test
{

    /**
     * 非切片客户端链接
     */
    private Jedis jedis;

    /**
     * 非切片链接池
     */
    private JedisPool jedisPool;

    /**
     * 切片客户端链接
     */
    private ShardedJedis shardedJedis;

    /**
     * 切片链接池
     */
    private ShardedJedisPool shardedJedisPool;

    /**
     * 构造函数
     */
    public Test()
    {
        initialPool();
        initialShardedPool();
        shardedJedis = shardedJedisPool.getResource();
        jedis = jedisPool.getResource();
    }

    private void initialPool()
    {
        // 池基本配置
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxActive(20);
        config.setMaxIdle(5);
        config.setMaxWait(1000l);
        config.setTestOnBorrow(false);

        jedisPool = new JedisPool(config, "192.168.120.51", 6379);
    }

    /**
     * 初始化切片池
     */
    private void initialShardedPool()
    {
        // 池基本配置
        JedisPoolConfig config = new JedisPoolConfig();
        config.setMaxActive(20);
        config.setMaxIdle(5);
        config.setMaxWait(1000l);
        config.setTestOnBorrow(false);
        // slave链接
        List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
        shards.add(new JedisShardInfo("192.168.120.51", 6379, "master"));

        // 构造池
        shardedJedisPool = new ShardedJedisPool(config, shards);
    }

    public void show()
    {
        // key检测
        testKey();
        // string检测
        testString();
        // list检测
        testList();
        // set检测
        testSet();
        // sortedSet检测
        testSortedSet();
        // hash检测
        testHash();
        shardedJedisPool.returnResource(shardedJedis);
    }

    private void testKey()
    {
        System.out.println("=============key==========================");
        // 清空数据
        System.out.println(jedis.flushDB());
        System.out.println(jedis.echo("foo"));
        // 判断key否存在
        System.out.println(shardedJedis.exists("foo"));
        shardedJedis.set("key", "values");
        System.out.println(shardedJedis.exists("key"));
    }

    private void testString()
    {
        System.out.println("=============String==========================");
        // 清空数据
        System.out.println(jedis.flushDB());
        // 存储数据
        shardedJedis.set("foo", "bar");
        System.out.println(shardedJedis.get("foo"));
        // 若key不存在,则存储
        shardedJedis.setnx("foo", "foo not exits");
        System.out.println(shardedJedis.get("foo"));
        // 覆盖数据
        shardedJedis.set("foo", "foo update");
        System.out.println(shardedJedis.get("foo"));
        // 追加数据
        shardedJedis.append("foo", " hello, world");
        System.out.println(shardedJedis.get("foo"));
        // 设置key的有效期,并存储数据
        shardedJedis.setex("foo", 2, "foo not exits");
        System.out.println(shardedJedis.get("foo"));
        try
        {
            Thread.sleep(3000);
        }
        catch (InterruptedException e)
        {
        }
        System.out.println(shardedJedis.get("foo"));
        // 获取并更改数据
        shardedJedis.set("foo", "foo update");
        System.out.println(shardedJedis.getSet("foo", "foo modify"));
        // 截取value的值
        System.out.println(shardedJedis.getrange("foo", 1, 3));
        System.out.println(jedis.mset("mset1", "mvalue1", "mset2", "mvalue2", "mset3", "mvalue3", "mset4", "mvalue4"));
        System.out.println(jedis.mget("mset1", "mset2", "mset3", "mset4"));
        System.out.println(jedis.del(new String[]
        {
            "foo", "foo1", "foo3"
        }));
    }

    private void testList()
    {
        System.out.println("=============list==========================");
        // 清空数据
        System.out.println(jedis.flushDB());
        // 添加数据
        shardedJedis.lpush("lists", "vector");
        shardedJedis.lpush("lists", "ArrayList");
        shardedJedis.lpush("lists", "LinkedList");
        // 数组长度
        System.out.println(shardedJedis.llen("lists"));
        // 排序
        System.out.println(shardedJedis.sort("lists"));
        // 字串
        System.out.println(shardedJedis.lrange("lists", 0, 3));
        // 修改列表中单个值
        shardedJedis.lset("lists", 0, "hello list!");
        // 获取列表指定下标的值
        System.out.println(shardedJedis.lindex("lists", 1));
        // 删除列表指定下标的值
        System.out.println(shardedJedis.lrem("lists", 1, "vector"));
        // 删除区间以外的数据
        System.out.println(shardedJedis.ltrim("lists", 0, 1));
        // 列表出栈
        System.out.println(shardedJedis.lpop("lists"));
        // 整个列表值
        System.out.println(shardedJedis.lrange("lists", 0, -1));

    }

    private void testSet()
    {
        System.out.println("=============set==========================");
        // 清空数据
        System.out.println(jedis.flushDB());
        // 添加数据
        shardedJedis.sadd("sets", "HashSet");
        shardedJedis.sadd("sets", "SortedSet");
        shardedJedis.sadd("sets", "TreeSet");
        // 判断value是否在列表中
        System.out.println(shardedJedis.sismember("sets", "TreeSet"));;
        // 整个列表值
        System.out.println(shardedJedis.smembers("sets"));
        // 删除指定元素
        System.out.println(shardedJedis.srem("sets", "SortedSet"));
        // 出栈
        System.out.println(shardedJedis.spop("sets"));
        System.out.println(shardedJedis.smembers("sets"));
        //
        shardedJedis.sadd("sets1", "HashSet1");
        shardedJedis.sadd("sets1", "SortedSet1");
        shardedJedis.sadd("sets1", "TreeSet");
        shardedJedis.sadd("sets2", "HashSet2");
        shardedJedis.sadd("sets2", "SortedSet1");
        shardedJedis.sadd("sets2", "TreeSet1");
        // 交集
        System.out.println(jedis.sinter("sets1", "sets2"));
        // 并集
        System.out.println(jedis.sunion("sets1", "sets2"));
        // 差集
        System.out.println(jedis.sdiff("sets1", "sets2"));
    }

    private void testSortedSet()
    {
        System.out.println("=============zset==========================");
        // 清空数据
        System.out.println(jedis.flushDB());
        // 添加数据
        shardedJedis.zadd("zset", 10.1, "hello");
        shardedJedis.zadd("zset", 10.0, ":");
        shardedJedis.zadd("zset", 9.0, "zset");
        shardedJedis.zadd("zset", 11.0, "zset!");
        // 元素个数
        System.out.println(shardedJedis.zcard("zset"));
        // 元素下标
        System.out.println(shardedJedis.zscore("zset", "zset"));
        // 集合子集
        System.out.println(shardedJedis.zrange("zset", 0, -1));
        // 删除元素
        System.out.println(shardedJedis.zrem("zset", "zset!"));
        System.out.println(shardedJedis.zcount("zset", 9.5, 10.5));
        // 整个集合值
        System.out.println(shardedJedis.zrange("zset", 0, -1));
    }

    private void testHash()
    {
        System.out.println("=============hash==========================");
     // 清空数据
        System.out.println(jedis.flushDB());
        //添加数据
        shardedJedis.hset("hashs", "entryKey", "entryValue");
        shardedJedis.hset("hashs", "entryKey1", "entryValue1");
        shardedJedis.hset("hashs", "entryKey2", "entryValue2");
        // 判断某个值是否存在
        System.out.println(shardedJedis.hexists("hashs", "entryKey"));
        // 获取指定的值
        System.out.println(shardedJedis.hget("hashs", "entryKey"));
        // 批量获取指定的值
        System.out.println(shardedJedis.hmget("hashs", "entryKey", "entryKey1"));
        // 删除指定的值
        System.out.println(shardedJedis.hdel("hashs", "entryKey"));
        // 为key中的域 field 的值加上增量 increment
        System.out.println(shardedJedis.hincrBy("hashs", "entryKey", 123l));
        // 获取所有的keys
        System.out.println(shardedJedis.hkeys("hashs"));
        // 获取所有的values
        System.out.println(shardedJedis.hvals("hashs"));
    }

    /**
     * @param args
     */
    public static void main(String[] args)
    {
        new Test().show();
    }

}
分享到:
评论
1 楼 xmmcnn 2012-05-14  
我还以为这个下载包里是代码呢,结果是一个PPT,我想说的是,这样的PPT没有专人讲,根本就没有什么实际的用途。。。

相关推荐

    Spring mvc整合redis实例(redis连接池)

    在Maven项目中,可以在pom.xml文件中添加`spring-data-redis`和`jedis`库,这两个库分别提供了Spring对Redis的支持和Jedis,一个Java客户端连接Redis。 ```xml &lt;groupId&gt;org.springframework.data &lt;artifactId&gt;...

    java连接redis实例源码

    2. 连接Redis服务器:创建一个Jedis实例,指定Redis服务器的IP和端口(默认6379)。 ```java import redis.clients.jedis.Jedis; public class RedisConnectExample { public static void main(String[] args) { ...

    windows下调用redis实例

    在Windows环境下调用Redis实例是一项常见的任务,尤其是在开发和测试阶段。Redis是一个开源的、基于键值对的数据存储系统,广泛用于缓存、消息队列和数据库等方面。本指南将详细讲解如何在Windows上利用Visual ...

    自己写的redis实例

    这个"自己写的redis实例"应该是包含了一个使用Jedis库来操作Redis的代码示例,Jedis是Java语言中常用的Redis客户端。 在Redis中,数据结构包括字符串(String)、哈希(Hash)、列表(List)、集合(Set)和有序...

    java链接Redis实例

    Java链接Redis实例是将Java应用程序与Redis键值存储系统进行交互的过程。Redis是一个高性能的、开源的内存数据结构服务器,常用于数据库、缓存和消息中间件的角色。在Java中,我们通常使用Jedis或Lettuce库来连接并...

    Redis使用实例

    Redis是一种高性能的键值数据库,常用于数据缓存、...解压后的"Redis实例"文件应包含示例代码,你可以参考这些代码了解如何在实际项目中使用Redis。学习和理解这些实例,将有助于你更高效地利用Redis解决实际问题。

    C# 控制台 redis实例

    **C#控制台Redis实例详解** Redis是一款高性能的键值对数据库,常用于缓存、消息队列等场景。在C#中,我们可以利用StackExchange.Redis库与Redis进行交互。本教程将详细介绍如何在C#控制台应用程序中使用Redis。 ...

    redis实例.zip

    这个名为"redis实例.zip"的压缩包看起来包含了与Redis实际应用相关的几个关键元素,让我们逐一探讨它们。 首先,我们看到一个名为"初始化省市区--sebs.sql"的文件,这通常是一个SQL脚本,用于在数据库中初始化省市...

    springMVC注解+ security + redis 实例

    综上所述,"springMVC注解+ security + redis 实例"的学习资料将涵盖这些技术的基本用法和整合方式,帮助开发者掌握如何构建一个安全、高效的Web应用。通过这个实例,你可以了解到如何在Spring MVC应用中使用注解...

    可视化工具:一个用于管理和监控Redis实例的可视化工具

    **RedisInsight:Redis 实例的可视化管理与监控利器** RedisInsight 是一款强大的可视化工具,专为管理和监控 Redis 实例而设计。它提供了一个用户友好的图形界面,使得 Redis 数据库的操作、监控以及问题诊断变得...

    C# Weiz.Redis实例

    本教程将深入探讨如何在C#环境中使用Weiz.Redis库来操作Redis实例。 首先,让我们了解C#与Redis的结合。C#是微软开发的一种面向对象的编程语言,广泛用于构建Windows应用程序和ASP.NET web应用。而Weiz.Redis是.NET...

    springboot项目连接数据库及redis实例

    在本项目中,"springboot项目连接数据库及redis实例"是一个使用Spring Boot框架构建的应用,它不仅能够与MySQL数据库进行交互,还集成了Redis作为缓存系统。Spring Boot以其便捷的初始化、自动化配置和模块化的特性...

    Spring mvc整合redis实例(测试通过)

    一款封装比较全的 sping 整合 redis实例。 不是Spring-date-redis的,是另一种集成方式,从网上整理的代码,测试已跑通。

    C# Redis 操作实例

    8. **读写分离与负载均衡**:在分布式环境中,通过配置多个Redis实例并使用代理(如Redis Sentinel或Redislite)实现读写分离和负载均衡。C#客户端可以自动处理这些细节,只需连接到代理即可。 以上是C#中与Redis...

    cpp-一个CSRF演示窃取本地Redis数据并加密本地网络上的所有Redis实例

    一个CSRF演示,窃取本地Redis数据,并加密本地网络上的所有Redis实例

    PHP+Redis 实例 页面缓存

    Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。从2010年3月15日起,Redis的开发工作由VMware主持。从2013年5月开始,Redis的开发由Pivotal...

    可视化工具:RedisInsight是一个用于管理和监控Redis实例的可视化工具

    RedisInsight是一个用于管理和监控Redis实例的可视化工具。它提供了直观的界面,可以轻松地查看和分析Redis的数据、内存使用和性能指标。

    Redis 实例 教程

    **Redis实例教程** Redis,全名Remote Dictionary Server,是一款高性能的键值存储系统,常用于数据缓存、消息队列以及数据库持久化等场景。它以其丰富的数据结构、高效的性能和简单易用的特性,受到了广大开发者的...

Global site tag (gtag.js) - Google Analytics