先启动 redis-server /etc/redis/redis.conf
package com.test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
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;
/**
*
* @author luozhonghua
*
*/
public class RedisClient {
private Jedis jedis;// 非切片额客户端连接
private JedisPool jedisPool;// 非切片连接池
private ShardedJedis shardedJedis;// 切片额客户端连接
private ShardedJedisPool shardedJedisPool;// 切片连接池
public RedisClient() {
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);
System.out.println("begin...");
jedisPool = new JedisPool(config, "127.0.0.1", 6379);
System.out.println("end...");
}
/**
* 初始化切片池
*/
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("127.0.0.1", 6379, "master"));
// 构造池
shardedJedisPool = new ShardedJedisPool(config, shards);
}
public void show() {
KeyOperate();
StringOperate();
ListOperate();
SetOperate();
SortedSetOperate();
HashOperate();
jedisPool.returnResource(jedis);
shardedJedisPool.returnResource(shardedJedis);
}
private void KeyOperate() {
System.out.println("======================key==========================");
// 清空数据
System.out.println("清空库中所有数据:"+jedis.flushDB());
// 判断key否存在
System.out.println("判断key999键是否存在:"+shardedJedis.exists("key999"));
System.out.println("新增key001,value001键值对:"+shardedJedis.set("key001", "value001"));
System.out.println("判断key001是否存在:"+shardedJedis.exists("key001"));
// 输出系统中所有的key
System.out.println("新增key002,value002键值对:"+shardedJedis.set("key002", "value002"));
System.out.println("系统中所有键如下:");
Set<String> keys = jedis.keys("*");
Iterator<String> it=keys.iterator() ;
while(it.hasNext()){
String key = it.next();
System.out.println(key);
}
// 删除某个key,若key不存在,则忽略该命令。
System.out.println("系统中删除key002: "+jedis.del("key002"));
System.out.println("判断key002是否存在:"+shardedJedis.exists("key002"));
// 设置 key001的过期时间
System.out.println("设置 key001的过期时间为5秒:"+jedis.expire("key001", 5));
try{
Thread.sleep(2000);
}
catch (InterruptedException e){
}
// 查看某个key的剩余生存时间,单位【秒】.永久生存或者不存在的都返回-1
System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001"));
// 移除某个key的生存时间
System.out.println("移除key001的生存时间:"+jedis.persist("key001"));
System.out.println("查看key001的剩余生存时间:"+jedis.ttl("key001"));
// 查看key所储存的值的类型
System.out.println("查看key所储存的值的类型:"+jedis.type("key001"));
/*
* 一些其他方法:1、修改键名:jedis.rename("key6", "key0");
* 2、将当前db的key移动到给定的db当中:jedis.move("foo", 1)
*/
}
private void StringOperate()
{
System.out.println("======================String_1==========================");
// 清空数据
System.out.println("清空库中所有数据:"+jedis.flushDB());
System.out.println("=============增=============");
jedis.set("key001","value001");
jedis.set("key002","value002");
jedis.set("key003","value003");
System.out.println("已新增的3个键值对如下:");
System.out.println(jedis.get("key001"));
System.out.println(jedis.get("key002"));
System.out.println(jedis.get("key003"));
System.out.println("=============删=============");
System.out.println("删除key003键值对:"+jedis.del("key003"));
System.out.println("获取key003键对应的值:"+jedis.get("key003"));
System.out.println("=============改=============");
//1、直接覆盖原来的数据
System.out.println("直接覆盖key001原来的数据:"+jedis.set("key001","value001-update"));
System.out.println("获取key001对应的新值:"+jedis.get("key001"));
//2、直接覆盖原来的数据
System.out.println("在key002原来值后面追加:"+jedis.append("key002","+appendString"));
System.out.println("获取key002对应的新值"+jedis.get("key002"));
System.out.println("=============增,删,查(多个)=============");
/**
* mset,mget同时新增,修改,查询多个键值对
* 等价于:
* jedis.set("name","ssss");
* jedis.set("jarorwar","xxxx");
*/
System.out.println("一次性新增key201,key202,key203,key204及其对应值:"+jedis.mset("key201","value201",
"key202","value202","key203","value203","key204","value204"));
System.out.println("一次性获取key201,key202,key203,key204各自对应的值:"+
jedis.mget("key201","key202","key203","key204"));
System.out.println("一次性删除key201,key202:"+jedis.del(new String[]{"key201", "key202"}));
System.out.println("一次性获取key201,key202,key203,key204各自对应的值:"+
jedis.mget("key201","key202","key203","key204"));
System.out.println();
//jedis具备的功能shardedJedis中也可直接使用,下面测试一些前面没用过的方法
System.out.println("======================String_2==========================");
// 清空数据
System.out.println("清空库中所有数据:"+jedis.flushDB());
System.out.println("=============新增键值对时防止覆盖原先值=============");
System.out.println("原先key301不存在时,新增key301:"+shardedJedis.setnx("key301", "value301"));
System.out.println("原先key302不存在时,新增key302:"+shardedJedis.setnx("key302", "value302"));
System.out.println("当key302存在时,尝试新增key302:"+shardedJedis.setnx("key302", "value302_new"));
System.out.println("获取key301对应的值:"+shardedJedis.get("key301"));
System.out.println("获取key302对应的值:"+shardedJedis.get("key302"));
System.out.println("=============超过有效期键值对被删除=============");
// 设置key的有效期,并存储数据
System.out.println("新增key303,并指定过期时间为2秒"+shardedJedis.setex("key303", 2, "key303-2second"));
System.out.println("获取key303对应的值:"+shardedJedis.get("key303"));
try{
Thread.sleep(3000);
}
catch (InterruptedException e){
}
System.out.println("3秒之后,获取key303对应的值:"+shardedJedis.get("key303"));
System.out.println("=============获取原值,更新为新值一步完成=============");
System.out.println("key302原值:"+shardedJedis.getSet("key302", "value302-after-getset"));
System.out.println("key302新值:"+shardedJedis.get("key302"));
System.out.println("=============获取子串=============");
System.out.println("获取key302对应值中的子串:"+shardedJedis.getrange("key302", 5, 7));
}
private void ListOperate() {
}
private void SetOperate() {
}
private void SortedSetOperate() {
}
private void HashOperate() {
}
public static void main(String[]args){
new RedisClient().show();
}
}
分享到:
相关推荐
本地连接redis的demo,可以是指对应key的过期时间 ,
zooker+redis linux demo zooker+redis linux demozooker+redis linux demozooker+redis linux demozooker+redis linux demozooker+redis linux demozooker+redis linux demozooker+redis linux demozooker+redis ...
根据网上教程,自己整理学习的一份demo,记录一下,以便以后翻阅
Linux下的Redis是一个高效、开源的键值存储系统,常用于数据缓存、消息队列以及数据库等场景。Redis因其出色的速度和丰富的数据结构支持而备受青睐。本资源为"linux-redis绿色版",适用于在Linux环境中快速部署Redis...
在Linux系统中安装Redis是一个常见的任务,特别是在搭建服务器或开发基于Redis的数据缓存应用时。Redis是一个开源的、高性能的键值对存储系统,适用于数据缓存、消息队列等多种场景。本文将详细介绍如何在Linux上...
在Linux系统中,Redis的免安装版本通常是指不需要通过编译源码或使用包管理器来安装的二进制版本,这使得在多台服务器上快速部署Redis变得更加便捷。以下是对“Linux系统Redis免安装版”相关知识点的详细解释: 1. ...
总之,安装和配置Redis在Linux下并不复杂,但需要根据实际需求进行细致的调整,确保系统的高效和可靠。理解并掌握配置文件中的各项设置,对于管理和优化Redis实例至关重要。在实际操作过程中,一定要仔细检查每一项...
### Linux下Redis 3.2.2安装与启动配置 #### 环境准备 - **操作系统**: CentOS 6.5 (2.6.32-431.el6.x86_64) - **软件**: Redis 3.2.2 #### 下载与解压 1. 使用`wget`命令下载Redis安装包: ```bash wget ...
Linux 下安装 Redis 服务器 Linux 下安装 Redis 服务器需要按照以下步骤进行: 一、准备安装包 在 Linux 下安装 Redis 服务器之前,需要先准备好 Redis 的安装包。可以从 Redis 的官方网站下载最新版本的安装包,...
在这个“完整的java操作redis demo”中,我们不仅可以看到如何使用Jedis进行基本的Redis操作,还能学习到如何结合Java处理Excel数据,这在数据导入导出或者数据分析场景中非常实用。 首先,我们要了解Jedis的基本...
这个"RedisDemo.rar"压缩包很可能包含了一个使用StackExchange.Redis驱动的C#示例项目,帮助开发者了解如何在C#环境中集成和操作Redis。 1. **安装StackExchange.Redis**:在C#项目中使用StackExchange.Redis,首先...
在本“简单的redisdemo”中,我们将探索如何搭建和使用Redis。 **安装Redis** 1. 下载Redis源码:首先,你需要从官方网站(https://redis.io/download)下载Redis的最新稳定版本。 2. 编译安装:解压下载的源码,...
Linux 系统安装 Redis 及 Tomcat 配置 本文档将详细介绍 Linux 系统安装 Redis 及 Tomcat 的配置步骤,包括 Redis 的安装、部署、配置和启动,Tomcat 的安装和配置等。 一、Redis 的安装 Redis 是一个开源的、...
在Windows或Linux环境下,安装步骤有所不同,但通常包括编译源码、启动服务等步骤。 3. **Java客户端Jedis**:在Java项目中与Redis交互,通常会使用Jedis库。Jedis提供了丰富的API,可以执行基本的命令如SET、GET、...
在“linux免安装 redis”的主题下,我们主要关注如何在Linux环境中不通过传统安装步骤快速启动并使用Redis服务。以下是相关知识点的详细说明: 1. **Redis的免安装方式**: Redis通常可以通过编译源代码的方式在...
本示例"RedisDemo_redis_"将带你入门如何在C#中使用Redis进行数据的存储和读取。 首先,我们需要安装`StackExchange.Redis` NuGet包,它是C#中广泛使用的Redis客户端库。通过Visual Studio的包管理器或命令行工具...
在本项目"SpringMVC整合RedisDemo"中,我们探讨了如何将流行的Java Web框架SpringMVC与高性能的键值存储系统Redis相结合,以提升Web应用的数据处理速度和效率。这个项目采用Maven作为构建工具,确保依赖管理的便捷性...