redis和jedis常用api
redis:
一、针对key的操作
1.1 del key [key .. ] , 删除指定的一个或者多个key;
1.2 dump key , 序列化给定的key
1.3 restore key ttl serialized-value , 反序列化到key
1.4 exists key , 判断某一key是否存在
1.5 expire key seconds , 设置key的过期时间
① set命令可以覆盖过期时间;不改变key的操作不会影响key的生存时间
② rename也不会改变key的过期时间
③ persist命令可以删除key的过期时间,即永久
④ ttl可以查看redis中key的过期时间
1.6 expireat key timestamp , 设置key的生存时间
1.7 keys pattern , 查找所有符合给定模式pattern的key
① *, ?, [m,n]
1.8 move key db , 将当前数据库中的key移动数据库 db中。使用select db可以切换数据库
1.9 persist key , 移除给定 key 的生存时间
1.10 pexpire,pexpireat , 设置key的过期、生存时间,单位毫秒
1.11 ttl,pttl , key的剩余过期时间,单位秒,单位是毫秒
1.12 randomkey , 随机返回一个key
1.13 rename key newkey , 将 key 改名为 newkey ,当newkey存在时会覆盖
1.14 renamenx key newkey , 当newkey不存在时,将key改名为newkey
1.15 sort key [by pattern] [get pattern [get pattern]] [limit offset count] [asc | desc] [alpha] [store destination] ,排序,pattern可以有 *字符出现
1.16 type key , 返回key所存储的值的类型 (none,string,list,set,zset,hash)
1.17 scan [db] cursor [MATCH pattern] [COUNT count] ,增量式迭代。 类似有 sscan,hscan,zscan
① SCAN命令用于迭代当前数据库中的数据库键。 返回结果为:用于下一次迭代的新游标;所有被迭代的元素
② SSCAN 命令用于迭代集合键中的 元素。
③ HSCAN 命令用于迭代哈希键中的 键值对。
④ ZSCAN 命令用于迭代有序集合中的 元素(包括元素成员和元素分值)
二、String操作
2.1 append key value , 将value追加到原先值的末尾
2.2 bitcount key [start] [end] , 计算给定字符串中,设置为1的比特位的数据量。
① 注意字符串"1"对应的十进制为49,二进制为00110001
② 可以通过setbit key offset value
2.3 bitop operation destkey key [key ...] , 对key的二进制字符串进行元操作,operation可以是and,or, not,xor。
2.4 decr key , 将key中存储的数字值减一
① 与incr命令相反
2.5 decrby key decrement , 将key所存储的值减去减量decrement
② 与incrby命令相反
2.6 get key
2.7 getbit key offset , 获取key中所存储字符串值对应偏移量上的bit
2.8 getrange key start end , 返回key中字符串值的子字符串
2.9 getset key value , 设置key的值为value,并返回key的旧值
2.10 mget key [key ...] , 返回指定的多个key的值
2.11 mset key value [key value ...] , 同时设置多个key-value值
2.12 msetnx key value [key value ...] , 当且仅当所有的key都不存在时,同时设置多个key-value对
2.13 set key value [EX second] [PX millisceonds] [NX|XX]
① setex key second value , 设置key的同时设置过期时间单位为秒
② psetex key millisceonds value , 过期时间单位为毫秒
③ setbit key offset value , 设置指定偏移量上的位
④ setnx key value , 当且仅当key不存在时设置key的value
⑤ setrange key offset value , 从offset开始,用value参数覆盖key中的值
2.14 strlen key , 返回key中所存字符串的长度
三、 Hash操作
3.1 hdel key field [field ...] , 删除哈希表key中的一个或多个指定域
3.2 hexists key field , 查看哈希表key中给定的field是否存在
3.3 hget key feild , 查看哈希表key中给定的field的值
① hgetall key , 查看哈希表key中所有的field的值
② hmget key field [field ...] , 返回哈希表key中一个或多个给定域的值
3.4 hincrby key field increment , 为哈希表key中的field的值加上增量increment
3.5 hkeys key , 获取哈希表key中的所有域
3.6 hlen key , 返回哈希表key中域的数量
3.7 hset key field value , 设置哈希表key中field的值
① hmset key field value [field value] , 同时设置过个field的值
② hsetnx key field value , 当field不存在时,设置field的值
3.8 hvals key , 返回哈希表key中所有域的值
3.9 hstrlen key field , 返回哈希表key中给定field关联值的字符长度
四、List操作(List相当于堆栈)
4.1 lpush key value [value ...] , 将一个或者多个值插入到列表key的表头
① rpush key value [value ...] , 将一个或者多个值插入到列表key的表尾
② lpushx key value ,当且仅当key存在时将值value插入到key的表头
③ rpushx key value ,当且仅当key存在时将值value插入到key的表尾
4.2 lpop key , 移除并返回列表key的头元素
① rpop key , 移除并返回列表的尾元素
② blpop key [key ...] timeout , lpop的阻塞式指令
③ brpop key [key ...] timeout , rpop的阻塞式指令
④ rpoplpush source destination , 将列表Source的尾元素弹出以及返回客户端,并且将该元素插入到destination列表中
⑤ brpoplpush source destination timeout , rpoplpush的阻塞版
4.3 lindex key index , 返回key中下表为index的元素
4.4 linsert key before|after pivot value , 将值value插入到key中,位为pivot之前或者之后
4.5 llen key , 返回列表key的长度
4.6 lrange key start stop , 返回列表key中指定区间内的元素
4.7 lrem key count value , 根据count的值,移除列表中与参数value相等的元素
4.8 lset key index value , 将列表key下表为index的元素值设置为value
4.9 ltrim key start stop , 对一个列表进行trim
五、Set操作(不可重复)
5.1 sadd key member [member ...] , 将元素加入到集合key中,已经有的忽略
5.2 scard key , 返回集合key的元素个数
5.3 sdiff key [key ...] , 返回一个集合的全部成员,该集合是所有给定集合之间的差集
5.4 sdiffstore destination key [key ...] , 放回集合之间的差集,并将它保存在destination集合中
5.5 sinter key [key ...] ,返回集合中给定集合的交集
5.6 sinterstore destination key [key ...] , 返回给定集合之间的差集,并将它保存在destination集合中
5.7 sismember key member , 判断member元素是否为集合key成员
5.8 smembers key , 返回集合中的所有成员
5.9 smove source destination member , 将member元素从source集合移动到destination集合
5.10 spop key , 移除并返回集合中的一个随机元素
5.11 srandmember key [count] , 返回指定count个数的集合,count为正数表示不能重复,负数可以重复
5.12 srem key member [member ...] , 移除集合key中的多个元素
5.13 sunion key [key ...] , 返回所有指定key的并集
5.14 sunionstore destination key [key ...]
六、ZADD操作(有序集合)
6.1 zadd key source member [[source member] [...]] , 将一个或者多个member元素及其score值加入到有序集合key中
6.2 zcard key , 返回有序集合key的元素个数
6.3 zcount key min max , 返回有序集合key中,score值在min和max之间的元素个数
6.4 zincrby key increment member , 为有序集合key的成员member的score值加上增量increment
6.5 zrange key start stop , 返回有序集key中,指定下标区间内的成员
① zrevrange key start stop [withscores] , 返回指定区间内的成员递减顺序
② zrevrangebyrank key max min [withscores] [limit offset count]
6.6 zrangebyscore key min max [withscopes] [limit offset count] , 返回score值介于min和max之间的集合
6.7 zrank key member , 返回有序集key中成员member的排名
① zrevrank key member , 返回有序集key中成员member的递减排名
6.8 zrem key member [member ...] , 移除有序集key中的多个成员
① zremrangebyrank key start stop , 移除有序集key中,指定排名区间内的所有成员
② zremrangebyscore key min max , 移除有序集key中,指定score范围内的成员
6.9 zscore key member , 返回成员member的score值
七、pub/sub(发布、订阅)
7.1 psubscribe pattern [pattern ...] , 订阅一个或者多个符合给定模式的频道
7.2 publish channel message , 将信息message发送到指定的频道channel
7.3 pubsub <subcommand> [argument ...] , 查看订阅与发布系统状态的内省命令
eg pubsub channels [pattern] , 列出当前的活跃频道,订阅模式的客户端不计算在内
eg pubsub numsub [channel-1 ...] , 返回给定频道的订阅者数量,订阅模式的客户端不计算在内
7.4 punsubscribe [pattern ...] , 指示客户端退订所有给定模式
7.5 subscribe channel [channel ...] , 订阅给定的一个或者多个频道信息
7.6 unsubscribe [channel ...] , 指示客户端退订给定的频道
八、Transaction(事务)
8.1 discard , 取消执行事务块内的所有命令
8.2 exec , 执行事务块内的命令
8.3 multi , 标记一个事务块的开始
8.4 unwatch , 取消watch命令对所有key的监视
8.5 watch key [key ...] , 监视一个或者多个key,如果事务执行之前,这个kye被其它命令所动,则事务被打断
九、Connection(连接)
9.1 auth password , 登录redis时输入密码
9.2 echo message , 打印一个特定的信息message,测试时使用
9.3 ping , 测试与服务器的连接,如果正常则返回pong
9.4 quit , 请求服务器关闭与当前客户端的连接
9.5 select index , 切换到指定的数据库
十、Server(服务器)
10.1 bgsave , 后台异步保存数据到硬盘
10.2 client setname/client getname , 为连接设置、获取名字
10.3 client kill ip:port , 关闭地址为 ip:port的客户端
10.4 client list , 以人类可读的方式,返回所有的连接客户端信息和统计数据
10.5 config get parameter , 取得运行redis服务器的配置参数
10.6 config set parameter value , 设置redis服务器的配置参数
10.7 config resetstat , 重置info命令的某些统计数据
10.8 dbsize , 返回当前数据库中key的数量
10.9 flushall , 清空整个redis服务器的数据(删除所有数据库的所有 key)
10.10 flushdb , 清空当前数据库中的所有key
10.11 info [section] , 返回redis服务器的各种信息和统计数据
10.12 lastsave , 返回最近一次redis成功将数据保存到磁盘时的时间
10.13 monitor , 实时打印出redis服务器接收到的指令
10.14 save , 将当前 Redis 实例的所有数据快照(snapshot)以 RDB 文件的形式保存到硬盘
10.15 slaveof host port , 将当前服务器转变为指定服务器的从属服务器
10.16 slowlog subcommand [argument] , Redis 用来记录查询执行时间的日志系统
jedis:
其中value 支持五种数据类型:
1)字符串型 string
2)字符串列表 lists
3)字符串集合 sets
4)有序字符串集合 sorted sets
5)哈希类型 hashs
Jedis jedis = new Jedis(String ip , String port)
方法 | 描述 | 返回值 /补充说明 |
---|---|---|
jedis.flush | ||
jedis.flushDB | 清空数据 | |
boolean jedis.exists(String key) | 判断某个键是否存在 | true = 存在,false= 不存在 |
jedis.set(String key,String value) | 新增键值对(key,value) | 返回String类型的OK代表成功 |
Set<String> jedis.keys(*) |
获取所有key | 返回set 无序集合 |
jedis.del(String key) | 删除键为key的数据项 | |
jedis.expire(String key,int i) | 设置键为key的过期时间为i秒 | |
int jedis.ttl(String key) | 获取建委key数据项的剩余时间(秒) | |
jedis.persist(String key) | 移除键为key属性项的生存时间限制 | |
jedis.type(String key) | 查看键为key所对应value的数据类型 |
jedis对字符串操作
语法 | 描述 |
---|---|
jedis.set(String key,String value) | 增加(或覆盖)数据项 |
jedis.setnx(String key,String value) | 不覆盖增加数据项(重复的不插入) |
jedis.setex(String ,int t,String value) | 增加数据项并设置有效时间 |
jedis.del(String key) | 删除键为key的数据项 |
jedis.get(String key) | 获取键为key对应的value |
jedis.append(String key, String s) | 在key对应value 后边扩展字符串 s |
jedis.mset(String k1,String V1,String K2,String V2,…) | 增加多个键值对 |
String[] jedis.mget(String K1,String K2,…) | 获取多个key对应的value |
jedis.del(new String[](String K1,String K2,.... )) |
删除多个key对应的数据项 |
String jedis.getSet(String key,String value) | 获取key对应value并更新value |
String jedis.getrang(String key , int i, int j) | 获取key对应value第i到j字符 ,从0开始,包头包尾 |
jedis中对整数和浮点数操作
语法 | 描述 |
---|---|
jedis.incr(String key) | 将key对应的value 加1 |
jedis.incrBy(String key,int n) | 将key对应的value 加 n |
jedis.decr(String key) | 将key对应的value 减1 |
jedis.decrBy(String key , int n) | 将key对应的value 减 n |
jedis对list列表操作
语法 | 描述 |
---|---|
jedis.lpush(String key, String v1, String v2,....) |
添加一个List , 注意:如果已经有该List对应的key, 则按顺序在左边追加 一个或多个 |
jedis.rpush(String key , String vn) | key对应list右边插入元素 |
jedis.lrange(String key,int i,int j) | 获取key对应list区间[i,j]的元素,注:从左边0开始,包头包尾 |
jedis.lrem(String key,int n , String val) | 删除list中 n个元素val |
jedis.ltrim(String key,int i,int j) | 删除list区间[i,j] 之外的元素 |
jedis.lpop(String key) | key对应list ,左弹出栈一个元素 |
jedis.rpop(String key) | key对应list ,右弹出栈一个元素 |
jedis.lset(String key,int index,String val) | 修改key对应的list指定下标index的元素 |
jedis.llen(String key) | 获取key对应list的长度 |
jedis.lindex(String key,int index) | 获取key对应list下标为index的元素 |
jedis.sort(String key) | 把key对应list里边的元素从小到大排序 (后边详细介绍) |
jedis对set操作
语法 | 操作 |
---|---|
jedis.sadd(String key,String v1,String v2,…) | 添加一个set |
jedis.smenbers(String key) | 获取key对应set的所有元素 |
jedis.srem(String key,String val) | 删除集合key中值为val的元素 |
jedis.srem(String key, Sting v1, String v2,…) | 删除值为v1, v2 , …的元素 |
jedis.spop(String key) | 随机弹出栈set里的一个元素 |
jedis.scared(String key) | 获取set元素个数 |
jedis.smove(String key1, String key2, String val) | 将元素val从集合key1中移到key2中 |
jedis.sinter(String key1, String key2) | 获取集合key1和集合key2的交集 |
jedis.sunion(String key1, String key2) | 获取集合key1和集合key2的并集 |
jedis.sdiff(String key1, String key2) | 获取集合key1和集合key2的差集 |
jedis对zset操作
语法 | 描述 |
---|---|
jedis.zadd(String key,Map map) | 添加一个ZSet |
jedis.hset(String key,int score , int val) | 往 ZSet插入一个元素(Score-Val) |
jedis.zrange(String key, int i , int j) | 获取ZSet 里下表[i,j] 区间元素Val |
jedis. zrangeWithScore(String key,int i , int j) | 获取ZSet 里下表[i,j] 区间元素Score - Val |
jedis.zrangeByScore(String , int i , int j) | 获取ZSet里score[i,j]分数区间的元素(Score-Val) |
jeids.zscore(String key,String value) | 获取ZSet里value元素的Score |
jedis.zrank(String key,String value) | 获取ZSet里value元素的score的排名 |
jedis.zrem(String key,String value) | 删除ZSet里的value元素 |
jedis.zcard(String key) | 获取ZSet的元素个数 |
jedis.zcount(String key , int i ,int j) | 获取ZSet总score在[i,j]区间的元素个数 |
jedis.zincrby(String key,int n , String value) | 把ZSet中value元素的score+=n |
jedis对hash操作
语法 | 描述 |
---|---|
jedis.hmset(String key,Map map) | 添加一个Hash |
jedis.hset(String key , String key, String value) | 向Hash中插入一个元素(K-V) |
jedis.hgetAll(String key) | 获取Hash的所有(K-V) 元素 |
jedis.hkeys(String key) | 获取Hash所有元素的key |
jedis.hvals(String key) | 获取Hash所有元素 的value |
jedis.hincrBy(String key , String k, int i) | 把Hash中对应的k元素的值 val+=i |
jedis.hdecrBy(String key,String k, int i) | 把Hash中对应的k元素的值 val-=i |
jedis.hdel(String key , String k1, String k2,…) | 从Hash中删除一个或多个元素 |
jedis.hlen(String key) | 获取Hash中元素的个数 |
jedis.hexists(String key,String K1) | 判断Hash中是否存在K1对应的元素 |
jedis.hmget(String key,String K1,String K2) | 获取Hash中一个或多个元素value |