文章参考自:http://www.cnblogs.com/edisonfeng/p/3571870.html,在此基础上进行了修改。

一、下载安装Redis

redis官网显示暂时不支持Windows平台,如果需要的话,使用微软的开源组织开发的64为版

点击Learn more进入github,选择发布版进行下载下载

这里使用最新版,解压后的目录结构:

几个exe程序的功能:    

  redis-benchmark.exe性能测试,用以模拟同时由N个客户端发送M个 SETs/GETs 查询 (类似于 Apache 的ab 工具).

  redis-check-aof.exe:更新日志检查

  redis-check-dump.exe本地数据库检查

  redis-cli.exe客户端

  redis-server.exe服务端

将文件夹路径加入环境变量(不添加的话就直接cmd进入该路径),然后cmd运行命令:redis-server启动

不关闭此控制台的情况下,另外打开一个控制台,输入命令:redis-cli ping 进行测试,收到PONG

二、下载Jedis.jar

官网上描述Java操作Redis可以通过Jedis也可以通过Lettuce,本例中使用Jedis。

https://github.com/xetorthio/jedis/releases

下载下来后是源文件的格式。。。需要编译成JAR包使用

使用maven命令进行编译,进入该目录,使用命令:mvn install -Dmaven.test.skip,出现BUILD SUCCESS表示编译成功。

PS:哪位大神能帮我解释一下我使用mvn clean package命令进行编译打包会报错,最后不成功。

三、Java项目进行基本操作:

结构目录:

ReidsUtils.java(工具类,提供获取Jedis和SharedJedis的入口)

package com.yoki.edu.utils;

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; public class RedisUtils { // private Jedis jedis;// 非切片额客户端连接
private static JedisPool jedisPool;// 非切片连接池
// private ShardedJedis shardedJedis;// 切片额客户端连接
private static ShardedJedisPool shardedJedisPool;// 切片连接池 static{
// 初始化非切片池
JedisPoolConfig config = new JedisPoolConfig();
//setMaxActive在commons-pool2-2.4.2.jar不适用,改为了setMaxTotal
/* 源码注释
* Sets the cap on the number of objects that can be allocated by the pool
* (checked out to clients, or idle awaiting checkout) at a given time. Use
* a negative value for no limit.
*/
// config.setMaxActive(20);
config.setMaxTotal(20);
config.setMaxIdle(5);
/*setMaxWait在commons-pool2-2.4.2.jar不适用,改为了setMaxWaitMillis*/
// config.setMaxWait(1000l);
config.setMaxWaitMillis(1000l);
config.setTestOnBorrow(false); jedisPool = new JedisPool(config, "127.0.0.1", 6379); //初始化非切片池
// slave链接
List<JedisShardInfo> shards = new ArrayList<JedisShardInfo>();
shards.add(new JedisShardInfo("127.0.0.1", 6379, "master")); // 构造池
shardedJedisPool = new ShardedJedisPool(config, shards);
} public static Jedis getJedis(){
Jedis jedis = jedisPool.getResource();
return jedis ;
} public static ShardedJedis getShardedJedis(){
ShardedJedis shardedJedis = shardedJedisPool.getResource();
return shardedJedis ;
}
}

RedisOperator.java(Redis的操作类)

package com.yoki.edu.main.dao;

import java.util.Iterator;
import java.util.Set; import com.yoki.edu.utils.RedisUtils; import redis.clients.jedis.Jedis;
import redis.clients.jedis.ShardedJedis;
import redis.clients.jedis.SortingParams; public class RedisOperator { public void flushDatabase() {
Jedis jedis = RedisUtils.getJedis();
ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
System.out.println("清空库中所有数据:" + jedis.flushDB());
jedis.close();
shardedJedis.close();
} public void flushDatabase(Jedis jedis) {
System.out.println("清空库中所有数据:" + jedis.flushDB());
} public void keyOperate() {
Jedis jedis = RedisUtils.getJedis();
ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
System.out.println("******************************keyOperate start******************************");
// 清空数据
flushDatabase(jedis) ;
// 判断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)
*/
jedis.close();
shardedJedis.close();
System.out.println("*******************************keyOperate end*******************************");
System.out.println("\n");
} public void stringOperate() {
Jedis jedis = RedisUtils.getJedis();
ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
System.out.println("******************************stringOperate start******************************");
// 清空数据
flushDatabase(jedis) ; 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.close();
shardedJedis.close();
System.out.println("*******************************stringOperate end*******************************");
System.out.println("\n");
} public void stringOperate2() {
Jedis jedis = RedisUtils.getJedis();
ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
System.out.println("******************************stringOperate 2 start******************************");
// jedis具备的功能shardedJedis中也可直接使用,下面测试一些前面没用过的方法
// 清空数据
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));
jedis.close();
shardedJedis.close();
System.out.println("*******************************stringOperate 2 end*******************************");
System.out.println("\n");
} public void listOperate() {
Jedis jedis = RedisUtils.getJedis();
ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
System.out.println("******************************listOperate start******************************");
// 清空数据
flushDatabase(jedis) ; System.out.println("=============增=============");
shardedJedis.lpush("stringlists", "vector");
shardedJedis.lpush("stringlists", "ArrayList");
shardedJedis.lpush("stringlists", "vector");
shardedJedis.lpush("stringlists", "vector");
shardedJedis.lpush("stringlists", "LinkedList");
shardedJedis.lpush("stringlists", "MapList");
shardedJedis.lpush("stringlists", "SerialList");
shardedJedis.lpush("stringlists", "HashList");
shardedJedis.lpush("numberlists", "3");
shardedJedis.lpush("numberlists", "1");
shardedJedis.lpush("numberlists", "5");
shardedJedis.lpush("numberlists", "2");
System.out.println("所有元素-stringlists:" + shardedJedis.lrange("stringlists", 0, -1));
System.out.println("所有元素-numberlists:" + shardedJedis.lrange("numberlists", 0, -1)); System.out.println("=============删=============");
// 删除列表指定的值 ,第二个参数为删除的个数(有重复时),后add进去的值先被删,类似于出栈
System.out.println("成功删除指定元素个数-stringlists:" + shardedJedis.lrem("stringlists", 2, "vector"));
System.out.println("删除指定元素之后-stringlists:" + shardedJedis.lrange("stringlists", 0, -1));
// 删除区间以外的数据
System.out.println("删除下标0-3区间之外的元素:" + shardedJedis.ltrim("stringlists", 0, 3));
System.out.println("删除指定区间之外元素后-stringlists:" + shardedJedis.lrange("stringlists", 0, -1));
// 列表元素出栈
System.out.println("出栈元素:" + shardedJedis.lpop("stringlists"));
System.out.println("元素出栈后-stringlists:" + shardedJedis.lrange("stringlists", 0, -1)); System.out.println("=============改=============");
// 修改列表中指定下标的值
shardedJedis.lset("stringlists", 0, "hello list!");
System.out.println("下标为0的值修改后-stringlists:" + shardedJedis.lrange("stringlists", 0, -1));
System.out.println("=============查=============");
// 数组长度
System.out.println("长度-stringlists:" + shardedJedis.llen("stringlists"));
System.out.println("长度-numberlists:" + shardedJedis.llen("numberlists"));
// 排序
/*
* list中存字符串时必须指定参数为alpha,如果不使用SortingParams,而是直接使用sort("list"),
* 会出现"ERR One or more scores can't be converted into double"
*/
SortingParams sortingParameters = new SortingParams();
sortingParameters.alpha();
sortingParameters.limit(0, 3);
System.out.println("返回排序后的结果-stringlists:" + shardedJedis.sort("stringlists", sortingParameters));
System.out.println("返回排序后的结果-numberlists:" + shardedJedis.sort("numberlists"));
// 子串: start为元素下标,end也为元素下标;-1代表倒数一个元素,-2代表倒数第二个元素
System.out.println("子串-第二个开始到结束:" + shardedJedis.lrange("stringlists", 1, -1));
// 获取列表指定下标的值
System.out.println("获取下标为2的元素:" + shardedJedis.lindex("stringlists", 2) + "\n");
jedis.close();
shardedJedis.close();
System.out.println("*******************************listOperate end*******************************");
System.out.println("\n");
} public void setOperate() { Jedis jedis = RedisUtils.getJedis();
ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
System.out.println("******************************setOperate start******************************");
// 清空数据
flushDatabase(jedis) ; System.out.println("=============增=============");
System.out.println("向sets集合中加入元素element001:" + jedis.sadd("sets", "element001"));
System.out.println("向sets集合中加入元素element002:" + jedis.sadd("sets", "element002"));
System.out.println("向sets集合中加入元素element003:" + jedis.sadd("sets", "element003"));
System.out.println("向sets集合中加入元素element004:" + jedis.sadd("sets", "element004"));
System.out.println("查看sets集合中的所有元素:" + jedis.smembers("sets"));
System.out.println(); System.out.println("=============删=============");
System.out.println("集合sets中删除元素element003:" + jedis.srem("sets", "element003"));
System.out.println("查看sets集合中的所有元素:" + jedis.smembers("sets"));
/*
* System.out.println("sets集合中任意位置的元素出栈:"+jedis.spop("sets"));//注:
* 出栈元素位置居然不定?--无实际意义
* System.out.println("查看sets集合中的所有元素:"+jedis.smembers("sets"));
*/
System.out.println(); System.out.println("=============改=============");
System.out.println(); System.out.println("=============查=============");
System.out.println("判断element001是否在集合sets中:" + jedis.sismember("sets", "element001"));
System.out.println("循环查询获取sets中的每个元素:");
Set<String> set = jedis.smembers("sets");
Iterator<String> it = set.iterator();
while (it.hasNext()) {
Object obj = it.next();
System.out.println(obj);
}
System.out.println(); System.out.println("=============集合运算=============");
System.out.println("sets1中添加元素element001:" + jedis.sadd("sets1", "element001"));
System.out.println("sets1中添加元素element002:" + jedis.sadd("sets1", "element002"));
System.out.println("sets1中添加元素element003:" + jedis.sadd("sets1", "element003"));
System.out.println("sets1中添加元素element002:" + jedis.sadd("sets2", "element002"));
System.out.println("sets1中添加元素element003:" + jedis.sadd("sets2", "element003"));
System.out.println("sets1中添加元素element004:" + jedis.sadd("sets2", "element004"));
System.out.println("查看sets1集合中的所有元素:" + jedis.smembers("sets1"));
System.out.println("查看sets2集合中的所有元素:" + jedis.smembers("sets2"));
System.out.println("sets1和sets2交集:" + jedis.sinter("sets1", "sets2"));
System.out.println("sets1和sets2并集:" + jedis.sunion("sets1", "sets2"));
System.out.println("sets1和sets2差集:" + jedis.sdiff("sets1", "sets2"));// 差集:set1中有,set2中没有的元素
jedis.close();
shardedJedis.close();
System.out.println("*******************************setOperate end*******************************");
System.out.println("\n");
} public void sortedSetOperate() { Jedis jedis = RedisUtils.getJedis();
ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
System.out.println("******************************sortedSetOperate start******************************");
// 清空数据
flushDatabase(jedis) ; System.out.println("=============增=============");
System.out.println("zset中添加元素element001:" + shardedJedis.zadd("zset", 7.0, "element001"));
System.out.println("zset中添加元素element002:" + shardedJedis.zadd("zset", 8.0, "element002"));
System.out.println("zset中添加元素element003:" + shardedJedis.zadd("zset", 2.0, "element003"));
System.out.println("zset中添加元素element004:" + shardedJedis.zadd("zset", 3.0, "element004"));
System.out.println("zset集合中的所有元素:" + shardedJedis.zrange("zset", 0, -1));// 按照权重值排序
System.out.println(); System.out.println("=============删=============");
System.out.println("zset中删除元素element002:" + shardedJedis.zrem("zset", "element002"));
System.out.println("zset集合中的所有元素:" + shardedJedis.zrange("zset", 0, -1));
System.out.println(); System.out.println("=============改=============");
System.out.println(); System.out.println("=============查=============");
System.out.println("统计zset集合中的元素中个数:" + shardedJedis.zcard("zset"));
System.out.println("统计zset集合中权重某个范围内(1.0——5.0),元素的个数:" + shardedJedis.zcount("zset", 1.0, 5.0));
System.out.println("查看zset集合中element004的权重:" + shardedJedis.zscore("zset", "element004"));
System.out.println("查看下标1到2范围内的元素值:" + shardedJedis.zrange("zset", 1, 2)); jedis.close();
shardedJedis.close();
System.out.println("*******************************sortedSetOperate end*******************************");
System.out.println("\n"); } public void hashOperate() {
Jedis jedis = RedisUtils.getJedis();
ShardedJedis shardedJedis = RedisUtils.getShardedJedis();
System.out.println("******************************hashOperate start******************************");
// 清空数据
flushDatabase(jedis) ; System.out.println("=============增=============");
System.out.println("hashs中添加key001和value001键值对:" + shardedJedis.hset("hashs", "key001", "value001"));
System.out.println("hashs中添加key002和value002键值对:" + shardedJedis.hset("hashs", "key002", "value002"));
System.out.println("hashs中添加key003和value003键值对:" + shardedJedis.hset("hashs", "key003", "value003"));
System.out.println("新增key004和4的整型键值对:" + shardedJedis.hincrBy("hashs", "key004", 4l));
System.out.println("hashs中的所有值:" + shardedJedis.hvals("hashs"));
System.out.println(); System.out.println("=============删=============");
System.out.println("hashs中删除key002键值对:" + shardedJedis.hdel("hashs", "key002"));
System.out.println("hashs中的所有值:" + shardedJedis.hvals("hashs"));
System.out.println(); System.out.println("=============改=============");
System.out.println("key004整型键值的值增加100:" + shardedJedis.hincrBy("hashs", "key004", 100l));
System.out.println("hashs中的所有值:" + shardedJedis.hvals("hashs"));
System.out.println(); System.out.println("=============查=============");
System.out.println("判断key003是否存在:" + shardedJedis.hexists("hashs", "key003"));
System.out.println("获取key004对应的值:" + shardedJedis.hget("hashs", "key004"));
System.out.println("批量获取key001和key003对应的值:" + shardedJedis.hmget("hashs", "key001", "key003"));
System.out.println("获取hashs中所有的key:" + shardedJedis.hkeys("hashs"));
System.out.println("获取hashs中所有的value:" + shardedJedis.hvals("hashs"));
System.out.println(); jedis.close();
shardedJedis.close();
System.out.println("*******************************hashOperate end*******************************"); } }

RunMain.java(程序主入口)

package com.yoki.edu.main;

import com.yoki.edu.main.dao.RedisOperator;

public class RunMain {

    public static void main(String[] args) {
RedisOperator op = new RedisOperator() ;
op.flushDatabase();
op.KeyOperate();
op.StringOperate();
op.ListOperate();
op.SetOperate();
op.SortedSetOperate();
op.HashOperate();
} }

注意:程序运行前,Redis(命令:redis-server)必须先打开,不然会出现链接错误

运行结果如下:

******************************keyOperate start******************************
清空库中所有数据:OK
判断key999键是否存在:false
新增key001,value001键值对:OK
判断key001是否存在:true
新增key002,value002键值对:OK
系统中所有键如下:
key002
key001
系统中删除key002:
判断key002是否存在:false
设置 key001的过期时间为5秒:
查看key001的剩余生存时间:
移除key001的生存时间:
查看key001的剩余生存时间:-
查看key所储存的值的类型:string
*******************************keyOperate end*******************************

******************************stringOperate start******************************
清空库中所有数据:OK
=============增=============
已新增的3个键值对如下:
value001
value002
value003
=============删=============
删除key003键值对:
获取key003键对应的值:null
=============改=============
直接覆盖key001原来的数据:OK
获取key001对应的新值:value001-update
在key002原来值后面追加:
获取key002对应的新值value002+appendString
=============增,删,查(多个)=============
一次性新增key201,key202,key203,key204及其对应值:OK
一次性获取key201,key202,key203,key204各自对应的值:[value201, value202, value203, value204]
一次性删除key201,key202:
一次性获取key201,key202,key203,key204各自对应的值:[null, null, value203, value204] *******************************stringOperate end*******************************

******************************stringOperate start******************************
清空库中所有数据:OK
=============新增键值对时防止覆盖原先值=============
原先key301不存在时,新增key301:
原先key302不存在时,新增key302:
当key302存在时,尝试新增key302:
获取key301对应的值:value301
获取key302对应的值:value302
=============超过有效期键值对被删除=============
新增key303,并指定过期时间为2秒OK
获取key303对应的值:key303-2second
3秒之后,获取key303对应的值:null
=============获取原值,更新为新值一步完成=============
key302原值:value302
key302新值:value302-after-getset
=============获取子串=============
获取key302对应值中的子串:
*******************************stringOperate end*******************************

******************************listOperate start******************************
清空库中所有数据:OK
=============增=============
所有元素-stringlists:[HashList, SerialList, MapList, LinkedList, vector, vector, ArrayList, vector]
所有元素-numberlists:[, , , ]
=============删=============
成功删除指定元素个数-stringlists:
删除指定元素之后-stringlists:[HashList, SerialList, MapList, LinkedList, ArrayList, vector]
删除下标0-3区间之外的元素:OK
删除指定区间之外元素后-stringlists:[HashList, SerialList, MapList, LinkedList]
出栈元素:HashList
元素出栈后-stringlists:[SerialList, MapList, LinkedList]
=============改=============
下标为0的值修改后-stringlists:[hello list!, MapList, LinkedList]
=============查=============
长度-stringlists:
长度-numberlists:
返回排序后的结果-stringlists:[LinkedList, MapList, hello list!]
返回排序后的结果-numberlists:[, , , ]
子串-第二个开始到结束:[MapList, LinkedList]
获取下标为2的元素:LinkedList *******************************listOperate end*******************************

******************************setOperate start******************************
清空库中所有数据:OK
=============增=============
向sets集合中加入元素element001:
向sets集合中加入元素element002:
向sets集合中加入元素element003:
向sets集合中加入元素element004:
查看sets集合中的所有元素:[element004, element003, element002, element001] =============删=============
集合sets中删除元素element003:
查看sets集合中的所有元素:[element004, element002, element001] =============改============= =============查=============
判断element001是否在集合sets中:true
循环查询获取sets中的每个元素:
element004
element002
element001 =============集合运算=============
sets1中添加元素element001:
sets1中添加元素element002:
sets1中添加元素element003:
sets1中添加元素element002:
sets1中添加元素element003:
sets1中添加元素element004:
查看sets1集合中的所有元素:[element003, element002, element001]
查看sets2集合中的所有元素:[element004, element003, element002]
sets1和sets2交集:[element003, element002]
sets1和sets2并集:[element003, element001, element002, element004]
sets1和sets2差集:[element001]
*******************************setOperate end*******************************

******************************sortedSetOperate start******************************
清空库中所有数据:OK
=============增=============
zset中添加元素element001:
zset中添加元素element002:
zset中添加元素element003:
zset中添加元素element004:
zset集合中的所有元素:[element003, element004, element001, element002] =============删=============
zset中删除元素element002:
zset集合中的所有元素:[element003, element004, element001] =============改============= =============查=============
统计zset集合中的元素中个数:
统计zset集合中权重某个范围内(1.0——5.0),元素的个数:
查看zset集合中element004的权重:3.0
查看下标1到2范围内的元素值:[element004, element001]
*******************************sortedSetOperate end*******************************

******************************hashOperate start******************************
清空库中所有数据:OK
=============增=============
hashs中添加key001和value001键值对:
hashs中添加key002和value002键值对:
hashs中添加key003和value003键值对:
新增key004和4的整型键值对:
hashs中的所有值:[value001, value002, value003, ] =============删=============
hashs中删除key002键值对:
hashs中的所有值:[value001, value003, ] =============改=============
key004整型键值的值增加100:
hashs中的所有值:[value001, value003, ] =============查=============
判断key003是否存在:true
获取key004对应的值:
批量获取key001和key003对应的值:[value001, value003]
获取hashs中所有的key:[key004, key003, key001]
获取hashs中所有的value:[value001, value003, ] *******************************hashOperate end*******************************

java操作redis学习(一):安装及连接的更多相关文章

  1. windows下Redis安装及利用java操作Redis

    一.windows下Redis安装 1.Redis下载 下载地址:https://github.com/MicrosoftArchive/redis 打开下载地址后,选择版本 然后选择压缩包 下载 R ...

  2. Java使用Redis学习笔记

    如果我们使用Java操作Redis, 需要确保已经安装了 redis 服务及 Java redis 驱动. Maven项目可以直接在pom.xml中加入jedis包驱动: <dependency ...

  3. Java操作Redis工具类

    依赖 jar 包 <dependency> <groupId>redis.clients</groupId> <artifactId>jedis< ...

  4. 使用Java操作Redis(一)

    Redis是一款基于key-value的数据库服务器,安装完成后我们可以通过redis-cli使用Redis提供的命令完成各种操作.redis-cli实际上就是一款客户端,和redis-server建 ...

  5. Redis入门(四)-Java操作Redis

    <Redis入门>系列文章的第四篇,这一节看一下如何用Java版本的redis客户端工具--Jedis来操作redis. Jedis封装了丰富的api来对redis的五种数据类型 stri ...

  6. Redis-基本概念、java操作redis、springboot整合redis,分布式缓存,分布式session管理等

    NoSQL的引言 Redis数据库相关指令 Redis持久化相关机制 SpringBoot操作Redis Redis分布式缓存实现 Resis中主从复制架构和哨兵机制 Redis集群搭建 Redis实 ...

  7. java 操作redis

    使用Java操作Redis需要jedis-2.1.0.jar,如果需要使用Redis连接池的话,还需commons-pool-1.5.4.jar package com.test; import ja ...

  8. java操作redis集群配置[可配置密码]和工具类(比较好用)

    转: java操作redis集群配置[可配置密码]和工具类 java操作redis集群配置[可配置密码]和工具类     <dependency>   <groupId>red ...

  9. Python操作redis学习系列之(集合)set,redis set详解 (六)

    # -*- coding: utf-8 -*- import redis r = redis.Redis(host=") 1. Sadd 命令将一个或多个成员元素加入到集合中,已经存在于集合 ...

随机推荐

  1. 网抓(XML Http Request、VBA)实现

    第一种,先看VBA Public Function GetInfo(strMoblie As String) As String '创建对象 Dim xmlHttp As Object Set xml ...

  2. OpenMP 并行编程

    OpenMP 并行编程 最近开始学习并行编程,目的是为了提高图像处理的运行速度,用的是VS2012自带的OpenMP. 如何让自己的编译器支持OpenMP: 1) 点击 项目属性页 2)点击 配置 3 ...

  3. javascript中 for循环的一些写法 for length 以及for in 还有 for of 的区别

    最近在写一些前端的代码,遇到一个产品列表遍历的问题,正好使用到for 的几种用法,于是研究了下. 代码如下,先说明下goodslist 是一个产品列表 形如这样的数据格式 { ‘types’:1, ' ...

  4. 处理登录和cookie

    做法 1: 可以一步一步cookies,毫无疑问,这非常麻烦. import requests params = {'',''} r = requests.post('',params) r = re ...

  5. Python ping 模块

    使用socket模块也可以获得域名对应的ip,参考:https://blog.csdn.net/c465869935/article/details/50850598 print socket.get ...

  6. OSU!(bzoj 4318)

    Description osu 是一款群众喜闻乐见的休闲软件.  我们可以把osu的规则简化与改编成以下的样子:  一共有n次操作,每次操作只有成功与失败之分,成功对应1,失败对应0,n次操作对应为1 ...

  7. Javascript 开启浏览器全屏模式

    作者:伯乐在线/前端空城师 通常在某些情况下,我们需要让浏览器开启全屏模式,以便获得更好的视觉体验,先看下全屏模式简单的几个API. 浏览器默认绑定 非全屏模式下, document的F11按键绑定开 ...

  8. 命令行参数解析函数 getopt

    命令行参数解析函数 —— getopt() getopt()函数声明如下: #include <unistd.h> int getopt(int argc, char * const ar ...

  9. dedecms--会员信息导出excel表格

    1:在dede/templets下面的member_main.htm,在全选按钮那里添加一个导出excel按钮:代码如下: <a href="toexcel.php" cla ...

  10. 洛谷——P3252 [JLOI2012]树

    P3252 [JLOI2012]树 题目描述 在这个问题中,给定一个值S和一棵树.在树的每个节点有一个正整数,问有多少条路径的节点总和达到S.路径中节点的深度必须是升序的.假设节点1是根节点,根的深度 ...