今天小编就和大家一起学习一下redis的api操作吧

1、keys * 这个命令是用于查出redis中所有的key,如果key过多不建议使用哦

redis命令的API redis常用api_hash表

(keys还有一些其他的用法,比如模糊匹配,我们在模糊的地方可以用*代替,或者字符匹配,我们可以在字符匹配的地方用?代替,下面给大家举两个例子)

redis命令的API redis常用api_redis_02

这种key的匹配的情况只能用于单字符,就像如果中间有两个字符被省略就无法匹配了,如果有多个字符被省略,那么建议用模糊匹配,之后我们也可以用选择匹配的方法即[],下面给大家举个例子

redis命令的API redis常用api_缓存_03

这个的含义是匹配test1或txst1的key

2、scan,因为keys *可能会返回大量的数据,所以我们会用一些替代方法,比如scan命令,scan命令的用法scan cursor [MATCH pattern] [COUNT count],因为scan是游标的方式进行检索,之后以第一次游标检索的结果进行第二次检索,当检索的游标返回为0时,证明检索结束,match是匹配的含义,它可以支持redis的一些通配符,count是表示查找多少个数据,下面为大家实践一下哈。

redis命令的API redis常用api_hash表_04

scan检索会存在一些问题,比如再返回的内容中不存在你需要的内容,也可能会返回重复的元素

3、exists key,这个命令是判断key是否存在的命令,小编为大家演示一下就清楚啦

redis命令的API redis常用api_redis命令的API_05

4、move key db,因为redis存在16个库,这个命令的含义是将key移动到指定的库中

redis命令的API redis常用api_redis_06

5、ttl key是查看这个key的过期时间(-1表示永不过期,-2表示已经过期)

redis命令的API redis常用api_缓存_07

6、expire key是为key设置过期时间

redis命令的API redis常用api_缓存_08

7、type key是用来产看key的类型

redis命令的API redis常用api_缓存_09

redis中会支持5中数据类型,分别是String,Hash,List,Set,Zset,下面小编就来和大家一起学习一下这五种数据类型的一些操作吧。

string:

 string是redis最基本的类型,你可以理解成与Memcached一模一样的类型,一个key对应一个value。string类型是二进制安全的。意思是redis的string可以包含任何数据。比如jpg图片或者序列化的对象,一个redis中字符串value最多可以是512M。

(1)set key value这个命令可以向redis中添加key和key的值

redis命令的API redis常用api_redis_10

(2)get key这个命令可以产看key的值

redis命令的API redis常用api_数据库_11

 (3)del key这个命令可以删除key

redis命令的API redis常用api_数据库_12

(可能又肯多小伙伴们会有一些疑问,我们用什么命令来做更新呢?对喽!相信这么聪明的你应该早就想到了,用set,只需要再对key进行一边set就OK了哦)

redis命令的API redis常用api_hash表_13

(4)append key value 如果key存在,则在指定的key末尾添加,如果key不存在则类似set

redis命令的API redis常用api_数据库_14

(5)strlen key 返回此key的长度

redis命令的API redis常用api_redis_15

 (6)incr key:为指定的key加1,decr key:为指定的key减1,incrby key 数值:为指定key的值增加数值,decrby key 数值:为指定key的值减数值

redis命令的API redis常用api_hash表_16

(7)getrange key (开始位置)(结束位置),获取指定区间范围内的值,类似between......and的关系,如果开始位置是0,结束位置是-1,那么表示获取key的全部值

redis命令的API redis常用api_hash表_17

 (8)setrange key(开始位置,从哪里开始设置) 具体值,设置(替换)指定区间范围内的值(开始位置,实际含义是从哪里替换,并不是只替换哪个字符,具体值的含义是替换成什么),下面给大家操作一下

redis命令的API redis常用api_hash表_18

(9)setex 键 秒值 真实值,设置带过期时间的key,动态设置

redis命令的API redis常用api_redis_19

(10)setnx key value,这个方法也是设置key的值,但是只有在key失效时或在key过期时此方法才有效,所以可以用setnx命令来做redis的分布式锁

redis命令的API redis常用api_redis_20

(11)mset  key1 value1 key2 value2,这个方法可以设置多个key的value值

redis命令的API redis常用api_hash表_21

(12)mget key1 key 2,这个方法可以获取所有(一个或多个)给定 key 的值。

redis命令的API redis常用api_数据库_22

(13)msetnx key1 value key2 value   同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。(msetnx只是可以一次性设置多个key和value,其他的和setnx没有太多区别,这里就不给大家演示了)

(14)getset  key  value  将给定 key 的值设为 value ,并返回 key 的旧值(old value) 

redis命令的API redis常用api_数据库_23

list: 

它是一个字符串链表(它的底层实际是个链表),left、right都可以插入添加;如果键不存在,创建新的链表;如果键已存在,新增内容;如果值全移除,对应的键也就消失了。链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。

(1)lpush  key  value1  value2  将一个或多个值加入到列表头部

redis命令的API redis常用api_redis_24

(2)rpush  key  value1  value2 将一个或多个值加入到列表底部

redis命令的API redis常用api_redis命令的API_25

(3)lrange key start end  获取列表指定范围的元素,如果开始是0,结束是-1,那么代表取出链表的全部值。(开始和结束是下标的含义)

redis命令的API redis常用api_数据库_26

(4)lpop key 移出并获取列表第一个元素

redis命令的API redis常用api_数据库_27

(5)rpop key  移出并获取列表最后一个元素

redis命令的API redis常用api_redis_28

(6)lindex key index   通过索引获取列表中的元素值(index是下标的值)

redis命令的API redis常用api_hash表_29

(7)llen 获取列表长度

redis命令的API redis常用api_redis_30

 (8)lrem key 0(数量) 值,表示删除全部给定的值。零个就是全部值   从左往右删除指定数量个值等于指定值的元素,返回的值为实际删除的数量

redis命令的API redis常用api_缓存_31

(9)ltrim key start(从哪里开始截)  end(结束位置) 截取指定索引区间的元素

redis命令的API redis常用api_hash表_32

(10)trim key  start(从哪里开始截)  end(结束位置) 截取指定索引区间的元素

redis命令的API redis常用api_redis_33

 set: 

 Redis的Set是string类型的无序,不能重复的集合。

(1)sadd key value1 value 2 向集合中添加一个或多个成员

redis命令的API redis常用api_redis_34

(2)smembers  key  返回集合中所有成员,这个已经在上面为大家演示过了

(3)sismembers key member  判断member元素是否是集合key的

redis命令的API redis常用api_redis命令的API_35

(4)scard key  获取集合里面的元素数量

redis命令的API redis常用api_数据库_36

(5)srem key value  删除集合中指定元素 

redis命令的API redis常用api_缓存_37

(6)srandmember key 数值,从set集合里面随机取出指定数值个元素,如果超过最大数量就全部取出

redis命令的API redis常用api_hash表_38

(7)spop key  随机移出并返回集合中某个元素

redis命令的API redis常用api_缓存_39

(8)smove  key1  key2  value(key1中某个值)作用是将key1中指定的值移除,加入到key2集合中

redis命令的API redis常用api_redis命令的API_40

(9)sdiff key1 key2  在第一个set里面而不在后面任何一个set里面的项(差集)

redis命令的API redis常用api_数据库_41

(10)sinter key1 key2  在第一个set和第二个set中都有的元素(交集)

redis命令的API redis常用api_缓存_42

(11)两个集合所有元素(并集)

redis命令的API redis常用api_数据库_43

hash: 

Redis hash 是一个键值对集合,是一个string类型的field和value的映射表,hash特别适合用于存储对象,k-v模式不变,但v是一个键值对,类似Java里面的Map<String,Object>

(1)hset  key  (key value)  向hash表中添加一个元素

redis命令的API redis常用api_redis_44

(2)hget key key 向hash表中获取一个元素(已经在上一张图片为大家展示了哈)

(3)hmset key key1 value1 key2 value2 key3 value3 向集合中添加一个或多个元素

redis命令的API redis常用api_redis命令的API_45

(4)hmget key key1 key2 key3  向集合中获取一个或多个元素 

redis命令的API redis常用api_hash表_46

(5)hgetall  key获取在hash列表中指定key的所有字段和值

redis命令的API redis常用api_hash表_47

(6)hdel key key1 key2 删除一个或多个hash字段 

redis命令的API redis常用api_缓存_48

(7)hlen key 获取hash表中字段数量

redis命令的API redis常用api_hash表_49

(8)hexists key key  查看hash表中,指定key(字段)是否存在

redis命令的API redis常用api_redis_50

(9)hkeys key 获取指定hash表中所有key(字段)(这个就只会获取key哦)

redis命令的API redis常用api_redis命令的API_51

(10)hvals key 获取指定hash表中所有value(值)

redis命令的API redis常用api_redis命令的API_52

(11)hincrby key key1 数量(整数) 指定hash表中某个字段加数量(和incr一个意思)

redis命令的API redis常用api_redis命令的API_53

(12)hincrbyfloat key key1 数量(浮点数,小数)指定hash表中某个字段加数量,和incr一个意思

redis命令的API redis常用api_redis_54

(13)hsetnx key key1 value1  与hset作用一样,区别是不存在赋值,存在了无效

redis命令的API redis常用api_redis_55

zset: 

Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。

(1)zadd key score value score value 向集合中添加一个或多个成员

redis命令的API redis常用api_数据库_56

(2)zrange key start end返回指定集合中key,若start是0,end是-1,则表示返回所有

redis命令的API redis常用api_数据库_57

(3)zrange key start end withscores  返回指定集合中的value和score,若start是0,end是-1,则表示返回所有集合中的value和score

redis命令的API redis常用api_redis命令的API_58

(4)zrangebyscore key 开始score 结束score,返回指定score间的值

redis命令的API redis常用api_redis_59

(5)zrem key score某个对应值(value),可以是多个值删除元素

redis命令的API redis常用api_redis命令的API_60

(6)zcard key  获取集合中元素个数

redis命令的API redis常用api_redis_61

(7)zcount key 开始score 结束score,获取分数区间内元素

redis命令的API redis常用api_hash表_62

(8)zrank key vlaue,获取value在zset中的下标位置(根据score排序)

redis命令的API redis常用api_缓存_63

(9)zscore key value  按照值获得对应的分数值

redis命令的API redis常用api_redis_64

那么这次就更新到这里吧