java redis client jedis 测试
package cn.byref.demo1; import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set; import junit.framework.TestCase;
import redis.clients.jedis.Jedis; public class RedisClientTest extends TestCase { private Jedis getJedis() {
Jedis jedis = new Jedis("10.68.113.103", 6379);
return jedis;
} /**
* 设置字符串值
*/
public void test_string_set() {
Jedis jedis = getJedis();
jedis.set("age", "1000");
System.out.println(jedis.get("age"));
} /**
* 设置key的过期时间: setex(key,expire,value)
*/
public void test_strign_setex() {
Jedis j = getJedis();
j.setex("customer", 2, "张铭");
System.out.println("customer:" + j.get("customer"));
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("customer sleep 3 second =" + j.get("customer"));
} /**
* 对已有key的值追加字符串
*/
public void test_string_append() {
Jedis jedis = getJedis();
jedis.append("age", "append");
System.out.println(jedis.get("age"));
} /**
* 是否存在某个key:exists(String key)
*/
public void test_exists_key() {
Jedis j = getJedis();
boolean exists = j.exists("age");
System.out.println("age exists:" + exists); exists = j.exists("name");
System.out.println("name exists:" + exists);
} /**
* 获取所有的key
*/
public void test_get_all_keys() {
Jedis j = getJedis();
Set<String> keys = j.keys("*");
for (String key : keys) {
System.out.println("key=" + key);
}
} /**
* 过期测试
*/
public void test_expire() {
Jedis j = getJedis();
String key = "username";
j.set(key, "张三"); System.out.println(key + " exists=" + j.exists(key)); // 查看某个key的剩余生存时间,单位【秒】.永久生存或者不存在的都返回-1
System.out.println(key + " ttl=" + j.ttl(key)); // 设置过期时间,单位秒
j.expire(key, 5); // 休眠2秒
try {
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
} // 查看key过期时间
System.out.println(key + " sleep 2 second ttl=" + j.ttl(key)); // 移除key的生存时间
j.persist(key); // 查看key过期时间
System.out.println(key + " persist ttl=" + j.ttl(key));
} /**
* map类型操作 hmset(key,map)
*/
public void test_map_set() {
Map<String, String> map = new HashMap<String, String>();
String key = "user score";
map.put("username", "zhansan");
map.put("age", "20");
map.put("address", "北京"); Jedis j = getJedis();
j.hmset("user score", map); List<String> values = j.hmget(key, "age", "username", "address");
System.out.println("users list = " + values); j.hdel(key, "age");
System.out.println("hdel users list = " + values);
System.out.println("map len = " + j.hlen(key));
System.out.println("all keys = " + j.hkeys(key));
System.out.println("all values = " + j.hvals(key)); System.out.println("*** iterate all keys ***");
Set<String> mapKeys = j.hkeys(key);
for (String mapKey : mapKeys) {
// String val = j.hget(key, mapKey); // 返回String
List<String> val = j.hmget(key, mapKey); // 返回List<String>
System.out.println(mapKey + " = " + val);
} } /**
* List类型操作:lpush,rpush,lset,rset,lrange,lrem
*/
public void test_list_set() {
Jedis j = getJedis(); String key = "java collection";
j.del(key);
j.lpush(key, "Collection");
j.lpush(key, "List");
j.lpush(key, "Vector");
j.lpush(key, "Map"); System.out.println("list len = " + j.llen(key)); System.out.println("lpush lrange(0,-1) = " + j.lrange(key, 0, -1));
System.out.println("lpush lrange(0,2) = " + j.lrange(key, 0, 1)); j.del(key);
j.lpush(key, "Collection");
j.lpush(key, "List");
j.rpush(key, "Vector");
j.rpush(key, "Map");
j.rpush(key, "List");
System.out.println("rpush lrange(0,-1) = " + j.lrange(key, 0, -1));
System.out.println(key + " ttl=" + j.ttl(key)); j.lrem(key,1,"List"); // lrem(key,count,value) count表示有重复的值时,删除几次
System.out.println("lrem lrange(0,-1) = " + j.lrange(key, 0, -1)); //[Collection, Vector, Map, List] j.lset(key, 1, "NewList");
System.out.println("lrem lrange(0,-1) = " + j.lrange(key, 0, -1)); }
}
常用命令
1)连接操作命令
quit:关闭连接(connection)
auth:简单密码认证
help cmd: 查看cmd帮助,例如:help quit
2)持久化
save:将数据同步保存到磁盘
bgsave:将数据异步保存到磁盘
lastsave:返回上次成功将数据保存到磁盘的Unix时戳
shundown:将数据同步保存到磁盘,然后关闭服务
3)远程服务控制
info:提供服务器的信息和统计
monitor:实时转储收到的请求
slaveof:改变复制策略设置
config:在运行时配置Redis服务器
4)对value操作的命令
exists(key):确认一个key是否存在
del(key):删除一个key
type(key):返回值的类型
keys(pattern):返回满足给定pattern的所有key
randomkey:随机返回key空间的一个
keyrename(oldname, newname):重命名key
dbsize:返回当前数据库中key的数目
expire:设定一个key的活动时间(s)
ttl:获得一个key的活动时间
select(index):按索引查询
move(key, dbindex):移动当前数据库中的key到dbindex数据库
flushdb:删除当前选择数据库中的所有key
flushall:删除所有数据库中的所有key
5)String
set(key, value):给数据库中名称为key的string赋予值value
get(key):返回数据库中名称为key的string的value
getset(key, value):给名称为key的string赋予上一次的value
mget(key1, key2,…, key N):返回库中多个string的value
setnx(key, value):添加string,名称为key,值为value
setex(key, time, value):向库中添加string,设定过期时间time
mset(key N, value N):批量设置多个string的值
msetnx(key N, value N):如果所有名称为key i的string都不存在
incr(key):名称为key的string增1操作
incrby(key, integer):名称为key的string增加integer
decr(key):名称为key的string减1操作
decrby(key, integer):名称为key的string减少integer
append(key, value):名称为key的string的值附加value
substr(key, start, end):返回名称为key的string的value的子串
6)List
rpush(key, value):在名称为key的list尾添加一个值为value的元素
lpush(key, value):在名称为key的list头添加一个值为value的 元素
llen(key):返回名称为key的list的长度
lrange(key, start, end):返回名称为key的list中start至end之间的元素
ltrim(key, start, end):截取名称为key的list
lindex(key, index):返回名称为key的list中index位置的元素
lset(key, index, value):给名称为key的list中index位置的元素赋值
lrem(key, count, value):删除count个key的list中值为value的元素
lpop(key):返回并删除名称为key的list中的首元素
rpop(key):返回并删除名称为key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop命令的block版本。
brpop(key1, key2,… key N, timeout):rpop的block版本。
rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,
并将该元素添加到名称为dstkey的list的头部
7)Set
sadd(key, member):向名称为key的set中添加元素member
srem(key, member) :删除名称为key的set中的元素member
spop(key) :随机返回并删除名称为key的set中一个元素
smove(srckey, dstkey, member) :移到集合元素
scard(key) :返回名称为key的set的基数
sismember(key, member) :member是否是名称为key的set的元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, (keys)) :求交集并将交集保存到dstkey的集合
sunion(key1, (keys)) :求并集
sunionstore(dstkey, (keys)) :求并集并将并集保存到dstkey的集合
sdiff(key1, (keys)) :求差集
sdiffstore(dstkey, (keys)) :求差集并将差集保存到dstkey的集合
smembers(key) :返回名称为key的set的所有元素
srandmember(key) :随机返回名称为key的set的一个元素
8)Hash
hset(key, field, value):向名称为key的hash中添加元素field
hget(key, field):返回名称为key的hash中field对应的value
hmget(key, (fields)):返回名称为key的hash中field i对应的value
hmset(key, (fields)):向名称为key的hash中添加元素field
hincrby(key, field, integer):将名称为key的hash中field的value增加integer
hexists(key, field):名称为key的hash中是否存在键为field的域
hdel(key, field):删除名称为key的hash中键为field的域
hlen(key):返回名称为key的hash中元素个数
hkeys(key):返回名称为key的hash中所有键
hvals(key):返回名称为key的hash中所有键对应的value
hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value
java redis client jedis 测试的更多相关文章
- java redis client jedis 测试及常用命令
package cn.byref.demo1; import java.util.HashMap;import java.util.List;import java.util.Map;import j ...
- Intro to Jedis – the Java Redis Client Library
转自:http://www.baeldung.com/jedis-java-redis-client-library 1. Overview This article is an introducti ...
- Redis java client ==> Jedis
https://github.com/xetorthio/jedis Jedis is a blazingly small and sane Redis java client. Jedis was ...
- java操作redis之jedis篇
首先来简单介绍一下jedis,其实一句话就可以概括的,就是java操作redis的一种api.我们知道redis提供了基本上所有常用编程语言的clients,大家可以到http://redis.io/ ...
- Redis介绍及Jedis测试
1.Redis简介 Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库.缓存和消息中间件. 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes ...
- Java操作redis客户端Jedis使用
1.1 jedis介绍 Redis不仅是使用命令来操作,现在基本上主流的语言都有客户端支持,比如java.C.C#.C++.php.Node.js.Go等. 在官方网站里列一些Java的客户端,有 ...
- (转)java redis使用之利用jedis实现redis消息队列
应用场景 最近在公司做项目,需要对聊天内容进行存储,考虑到数据库查询的IO连接数高.连接频繁的因素,决定利用缓存做. 从网上了解到redis可以对所有的内容进行二进制的存储,而java是可以对所有对象 ...
- Java中使用Jedis操作Redis(转载)
整理 1.字符串 添加:set keyname value 查询:get keyname 拼接:append keyname value 删除:del keyname 添加多个: mset keyna ...
- (转)Java中使用Jedis操作Redis
转自http://www.cnblogs.com/liuling/p/2014-4-19-04.html 使用Java操作Redis需要jedis-2.1.0.jar,下载地址:http://file ...
随机推荐
- Python Web学习笔记之socket编程
Python 提供了两个基本的 socket 模块. 第一个是 Socket,它提供了标准的 BSD Sockets API. 第二个是 SocketServer, 它提供了服务器中心类,可以简化网络 ...
- C++微专业课程辅导(内存模型和动态内存)
“除了静态内存和栈内存之外,每个程序还拥有一个内存池.这部分空间被称作自由空间(free store)或堆(heap).程序用堆来存储动态分配(dynamically allocate)的对象”——& ...
- 02: css常用属性
目录: 1.1 设置样式的七个选择器 1.2 css常见属性浅析 1.3 css布局中常用方法 1.1 设置样式的七个选择器返回顶部 1.其中选择器介绍 1. 直接在标签里的style标签写样式 2. ...
- bzoj 4033 树上染色 - 树形动态规划
有一棵点数为N的树,树边有边权.给你一个在0~N之内的正整数K,你要在这棵树中选择K个点,将其染成黑 色,并将其他的N-K个点染成白色.将所有点染色后,你会获得黑点两两之间的距离加上白点两两之间距离的 ...
- sqlite3 的一些整理和补充
一,sqlite3数据库打开时的返回值及其所代表的含义 返回值 描述 返回值 描述 SQLITE_OK=0 返回成功 SQLITE_FULL=13 数据库满,插入失败 SQLITE_ERROR=1 S ...
- Python3基础 time 索引值访问元组中的年月日时分秒
Python : 3.7.0 OS : Ubuntu 18.04.1 LTS IDE : PyCharm 2018.2.4 Conda ...
- 嵌入式C语言--面试题
C语言测试是招聘嵌入式系统程序员过程中必须而且有效的方法.这些年,我既参加也组织了许多这种测试,在这过程中我意识到这些测试能为带面试者和被面试者提供许多有用信息,此外,撇开面试的压力不谈,这种测试也是 ...
- linux下如何查看当前机器提供了哪些服务
答:使用netstat工具 在命令行下输入netstat -atun即可列出当前机器提供的服务 netstat各选项解析: -a 列出所有服务 -t 列出tcp相关 -u 列出udp相关 -n 以数字 ...
- DataSet 动态添加列
public DataSet GetNewId(List<string> IdArr) { DataSet ds = new DataSet(); DataTable newtb = ne ...
- 【Python】【元编程】【一】动态属性和特性
#19.1 使用动态属性转换数据"""#栗子19-2 osconfeed.py:下载 osconfeed.jsonfrom urllib.request import u ...