Jedis客户端操作redis缓存命令详解
1.对value操作的命令
exists(key):确认一个key是否存在
del(key):删除一个key
type(key):返回值的类型
keys(pattern):返回满足给定pattern的所有key
randomkey:随机返回key空间的一个key
rename(oldname, newname):将key由oldname重命名为newname,若newname存在则删除newname表示的key
dbsize:返回当前数据库中key的数目
expire:设定一个key的活动时间(s)
ttl:获得一个key的活动时间
select(index):按索引查询
move(key, dbindex):将当前数据库中的key转移到有dbindex索引的数据库
flushdb:删除当前选择数据库中的所有key
flushall:删除所有数据库中的所有key
2.对String操作的命令
set(key, value):给数据库中名称为key的string赋予值value
get(key):返回数据库中名称为key的string的value
getset(key, value):给名称为key的string赋予上一次的value
mget(key1, key2,…, key N):返回库中多个string(它们的名称为key1,key2…)的value
setnx(key, value):如果不存在名称为key的string,则向库中添加string,名称为key,值为value
setex(key, time, value):向库中添加string(名称为key,值为value)同时,设定过期时间time
mset(key1, value1, key2, value2,…key N, value N):同时给多个string赋值,名称为key i的string赋值value i
msetnx(key1, value1, key2, value2,…key N, value N):如果所有名称为key i的string都不存在,则向库中添加string,名称key i赋值为value i
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的子串
3.对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之间的元素(下标从0开始,下同)
ltrim(key, start, end):截取名称为key的list,保留start至end之间的元素
lindex(key, index):返回名称为key的list中index位置的元素
lset(key, index, value):给名称为key的list中index位置的元素赋值为value
lrem(key, count, value):删除count个名称为key的list中值为value的元素。count为0,删除所有值为value的元素,count>0 从头至尾删除count个值为value的元素,count<0从尾到头删除|count|个值为value的元素。
lpop(key):返回并删除名称为key的list中的首元素
rpop(key):返回并删除名称为key的list中的尾元素
blpop(key1, key2,… key N, timeout):lpop 命令的block版本。即当timeout为0时,若遇到名称为key i的list不存在或该list为空,则命令结束。如果 timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对key i+1开始的list执行pop操作。
brpop(key1, key2,… key N, timeout):rpop的block版本。参考上一命令。
rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部
4.对Set操作的命令
sadd(key, member):向名称为key的set中添加元素member
srem(key, member) :删除名称为key的set中的元素member
spop(key) :随机返回并删除名称为key的set中一个元素
smove(srckey, dstkey, member) :将member元素从名称为srckey的集合移到名称为dstkey的集合
scard(key) :返回名称为key的set的基数
sismember(key, member) :测试member是否是名称为key的set的元素
sinter(key1, key2,…key N) :求交集
sinterstore(dstkey, key1, key2,…key N) :求交集并将交集保存到dstkey的集合
sunion(key1, key2,…key N) :求并集
sunionstore(dstkey, key1, key2,…key N) :求并集并将并集保存到dstkey的集合
sdiff(key1, key2,…key N) :求差集
sdiffstore(dstkey, key1, key2,…key N) :求差集并将差集保存到dstkey的集合
smembers(key) :返回名称为key的set的所有元素
srandmember(key) :随机返回名称为key的set的一个元素
由上面可以看出,存储的数据类型不一样,jedis的函数也会不一样,但是有一定的规律,操作String类型的value的,函数都是很普通的函数,可以直接的看出函数的作用,只是个别的带m而已,操作list集合的函数,相应在操作String的value的函数的前提下,在函数名称面前添加小写的L即可。同理,操作HashMap集合的value时,在String类型的value函数前加上小写的H,其他的类似,但是有一点需要特别注意的是,操作list集合的value时,时常会遇到no such key excepion,所以当你确定是操作list集合的value时,一定要先调用jedis.lpush("xxx名称","xxx".....),函数先,以保证xxx名称在jedis缓存中存在,而且在调用jedis.lrange("xxx",int start,int end);函数时遍历时,也需要特别注意,end一定能到超出xxx集合的大小,也不能想等,否则会报index out of range exception
5.对zset(sorted set)操作的命令
zadd(key, score, member):向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。
zrem(key, member) :删除名称为key的zset中的元素member
zincrby(key, increment, member) :如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment
zrank(key, member) :返回名称为key的zset(元素已按score从小到大排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”
zrevrank(key, member) :返回名称为key的zset(元素已按score从大到小排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”
zrange(key, start, end):返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素
zrevrange(key, start, end):返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素
zrangebyscore(key, min, max):返回名称为key的zset中score >= min且score <= max的所有元素
zcard(key):返回名称为key的zset的基数
zscore(key, element):返回名称为key的zset中元素element的score
zremrangebyrank(key, min, max):删除名称为key的zset中rank >= min且rank <= max的所有元素
zremrangebyscore(key, min, max) :删除名称为key的zset中score >= min且score <= max的所有元素
zunionstore / zinterstore(dstkeyN, key1,…,keyN, WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX):对N个zset求并集和交集,并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行AGGREGATE运算前,都要乘以对于的WEIGHT参数。如果没有提供WEIGHT,默认为1。默认的AGGREGATE是SUM,即结果集合中元素的score是所有集合对应元素进行 SUM运算的值,而MIN和MAX是指,结果集合中元素的score是所有集合对应元素中最小值和最大值。
/**************jedis String operation test*****************/ jedis.set("jedis4","jedis4"); logger.info("=-===========jedis.get(\"jedis4\")========" + jedis.get("jedis4")); jedis.append("jedis4","jedis3"); logger.info("=-===========jedis.get(\"jedis4\")========" + jedis.get("jedis4")); jedis.expire("jedis4",1); try{ Thread.sleep(1500); }catch (InterruptedException E){ logger.info(E.toString()); } logger.info("=-===========jedis.get(\"jedis4\")========" + jedis.get("jedis4")); /**************jedis String operation test*****************/ /**************jedis HashMap operation test*****************/ Map<String,String> map = new HashMap<>(); map.put("map3","map3"); map.put("map4","map4"); jedis.hmset("hasmap1",map); logger.info("======jedis.hmget(\"hasmap1\",\"map3\")===========>>" + jedis.hmget("hasmap1","map4","map3")); logger.info("======jedis.hgetAll(\"hasmap1\")===========>>" + jedis.hgetAll("hasmap1")); logger.info("======jedis.hkeys(\"hasmap1\")===========>>" + jedis.hkeys("hasmap1")); logger.info("======jedis.hvals(\"hasmap1\")===========>>" + jedis.hvals("hasmap1")); /**************jedis HashMap operation test*****************/ /**************jedis list operation test*****************/ jedis.lpush("listTest2","list2","list3","lllll"); jedis.lset("listTest2",0,"list1"); jedis.lset("listTest2",1,"list1"); jedis.lset("listTest2",2,"list1"); logger.info("======jedis.lrange(\"listTest2\",0,4)===========>>" + jedis.lrange("listTest2",0,jedis.llen("listTest2")-1)); jedis.lpush("list5","fdf");//list的必须先调用这个方法才能在list里面存储数据否则报no such key exception jedis.lset("list5",0,"list1"); jedis.lset("list5",1,"list2"); logger.info("======jedis.lrange(\"list5\",0,4)===========>>" + jedis.lrange("list5",0,jedis.llen("list5")-1));
: =-===========jedis.get("jedis4")========jedis4
: =-===========jedis.get("jedis4")========jedis4jedis3
: =-===========jedis.get("jedis4")========null
: ======jedis.hmget("hasmap1","map3")===========>>[map4, map3]
: ======jedis.hgetAll("hasmap1")===========>>{map3=map3, map4=map4}
: ======jedis.hkeys("hasmap1")===========>>[map3, map4]
: ======jedis.hvals("hasmap1")===========>>[map3, map4]
: ======jedis.lrange("listTest2",0,4)===========>>[list1, list1, list1, list1, list1, list1, list1, list1, list1]
: ======jedis.lrange("list5",0,4)===========>>[list1, list2, list1]
6.对Hash操作的命令
hset(key, field, value):向名称为key的hash中添加元素field<—>value
hget(key, field):返回名称为key的hash中field对应的value
hmget(key, field1, …,field N):返回名称为key的hash中field i对应的value
hmset(key, field1, value1,…,field N, value N):向名称为key的hash中添加元素field i<—>value i
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
参考文章:http://www.cnblogs.com/libaoting/p/4418007.html
Jedis客户端操作redis缓存命令详解的更多相关文章
- Python操作redis字符串(String)详解  (三)
		# -*- coding: utf-8 -*- import redis #这个redis不能用,请根据自己的需要修改 r =redis.Redis(host=") 1.SET 命令用于设置 ... 
- redis info 命令详解
		详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt119 Redis Info 命令以一种易于理解和阅读的格式,返回关于 Red ... 
- redis缓存使用详解
		mysql数据库是存在磁盘中的,操作是对于磁盘操作,这样访问量和并发很大时,运行速率就取决于磁盘的容量,带宽的大小和读取的方式,也就是 sql 语句,次数和效率也会影响读取效率.当访问量和并发很大的时 ... 
- redis info命令详解
		以一种易于解释(parse)且易于阅读的格式,返回关于 Redis 服务器的各种信息和统计数值. 通过给定可选的参数 section ,可以让命令只返回某一部分的信息: server : 一般 Red ... 
- Redis缓存数据库详解
		Redis最为常用的数据类型主要有以下五种: 1)String 2)Hash 3)List 4)Set 5)Sorted set 在具体描述这几种数据类型之前,我们先通过一张图了解下Redis内部内存 ... 
- 2.Redis info命令详解
		命令 127.0.0.1:6379> info [server|clients|memory|stats|...] # Server redis_version:5.0.4 #redis版本 r ... 
- Redis - 常用命令详解
		1.远程连接redis服务器 # 用法:redis-cli [OPTIONS] [cmd [arg [arg ...]]] # -h <主机ip>,默认是127.0.0.1 # -p &l ... 
- Redis之命令详解
		Redis命令手册:http://doc.redisfans.com/ 
- Python操作redis系列以    哈希(Hash)命令详解(四)
		# -*- coding: utf-8 -*- import redis #这个redis不能用,请根据自己的需要修改 r =redis.Redis(host=") 1. Hset 命令用于 ... 
随机推荐
- 测试redis集群的两种方式:分片和哨兵
			import java.util.ArrayList; import java.util.HashSet; import java.util.List; import java.util.Set; i ... 
- 通用性好的win2003序列号: (推荐先用这个里面的)
			通用性好的win2003序列号: (推荐先用这个里面的)FJ8DH-TQPYG-9KFHQ-88CB2-Y7V3Y GRD4P-FTQQF-JCDM8-4P6JK-PFG7MJD7JX-KCDTH-7 ... 
- window.opener方法的使用 js 跨域
			用到了这个方法: window.opener.location.reload() 与 window.opener.location.href=window.opener.location.href 都 ... 
- Mac在Finder中显示/usr、/tmp、/var等隐藏目录
			Finder中默认是不显示/usr./tmp./var等隐藏目录的,通过在终端中输入一下命令来另其显示: #开启 defaults write com.apple.Finder AppleShowAl ... 
- 算法篇---java经典问题!!!
			问题一:==与equal的区别? ==和 equals 都是比较的,而前者是运算符,后者则是一个方法,基本数据类型和引用数据类型都可以使用运算符==,而只有引用类型数据才可以使用 equals,下面具 ... 
- C语言  ·  C++中map的用法详解
			转载自:http://blog.csdn.net/sunquana/article/details/12576729 一.定义 (1) map<string, int> Map ... 
- C语言  ·  瓷砖铺放
			算法训练 瓷砖铺放 时间限制:1.0s 内存限制:512.0MB 锦囊1 递归或递推. 问题描述 有一长度为N(1<=N<=10)的地板,给定两种不同瓷砖:一种长 ... 
- TypeError: decoding Unicode is not supported
			在试图读取网页的时候遇到TypeError: decoding Unicode is not supported, 主要原因是返回的字符串已经是unicode类型了 
- 如何修改被hosts.deny禁止访问的IP
			自己的密码忘记了,重试了很多次被加入了黑名单. 如果仅仅清空 /etc/hosts.deny 文件内容,你会发现过一会自己的IP又进入里面了. 其实系统后台会定期自动扫描一些文件,然后将这些异常的IP ... 
- Extjs js 产生Guid或者UUID
			Ext.data.IdGenerator.get('uuid').generate() 结果:a9c4efb8-06c9-4c2e-8a70-bb36a69e053e 更多介绍:http://docs ... 
