redis的api操作
今天小编就和大家一起学习一下redis的api操作吧1、keys * 这个命令是用于查出redis中所有的key,如果key过多不建议使用哦(keys还有一些其他的用法,比如模糊匹配,我们在模糊的地方可以用*代替,或者字符匹配,我们可以在字符匹配的地方用?代替,下面给大家举两个例子)这种key的匹配的情况只能用于单字符,就像如果中间有两个字符被省略就无法匹配了,如果有多个字符被省略,那么建议用模糊
今天小编就和大家一起学习一下redis的api操作吧
1、keys * 这个命令是用于查出redis中所有的key,如果key过多不建议使用哦
(keys还有一些其他的用法,比如模糊匹配,我们在模糊的地方可以用*代替,或者字符匹配,我们可以在字符匹配的地方用?代替,下面给大家举两个例子)
这种key的匹配的情况只能用于单字符,就像如果中间有两个字符被省略就无法匹配了,如果有多个字符被省略,那么建议用模糊匹配,之后我们也可以用选择匹配的方法即[],下面给大家举个例子
这个的含义是匹配test1或txst1的key
2、scan,因为keys *可能会返回大量的数据,所以我们会用一些替代方法,比如scan命令,scan命令的用法scan cursor [MATCH pattern] [COUNT count],因为scan是游标的方式进行检索,之后以第一次游标检索的结果进行第二次检索,当检索的游标返回为0时,证明检索结束,match是匹配的含义,它可以支持redis的一些通配符,count是表示查找多少个数据,下面为大家实践一下哈。
scan检索会存在一些问题,比如再返回的内容中不存在你需要的内容,也可能会返回重复的元素
3、exists key,这个命令是判断key是否存在的命令,小编为大家演示一下就清楚啦
4、move key db,因为redis存在16个库,这个命令的含义是将key移动到指定的库中
5、ttl key是查看这个key的过期时间(-1表示永不过期,-2表示已经过期)
6、expire key是为key设置过期时间
7、type key是用来产看key的类型
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的值
(2)get key这个命令可以产看key的值
(3)del key这个命令可以删除key
(可能又肯多小伙伴们会有一些疑问,我们用什么命令来做更新呢?对喽!相信这么聪明的你应该早就想到了,用set,只需要再对key进行一边set就OK了哦)
(4)append key value 如果key存在,则在指定的key末尾添加,如果key不存在则类似set
(5)strlen key 返回此key的长度
(6)incr key:为指定的key加1,decr key:为指定的key减1,incrby key 数值:为指定key的值增加数值,decrby key 数值:为指定key的值减数值
(7)getrange key (开始位置)(结束位置),获取指定区间范围内的值,类似between......and的关系,如果开始位置是0,结束位置是-1,那么表示获取key的全部值
(8)setrange key(开始位置,从哪里开始设置) 具体值,设置(替换)指定区间范围内的值(开始位置,实际含义是从哪里替换,并不是只替换哪个字符,具体值的含义是替换成什么),下面给大家操作一下
(9)setex 键 秒值 真实值,设置带过期时间的key,动态设置
(10)setnx key value,这个方法也是设置key的值,但是只有在key失效时或在key过期时此方法才有效,所以可以用setnx命令来做redis的分布式锁
(11)mset key1 value1 key2 value2,这个方法可以设置多个key的value值
(12)mget key1 key 2,这个方法可以获取所有(一个或多个)给定 key 的值。
(13)msetnx key1 value key2 value 同时设置一个或多个 key-value 对,当且仅当所有给定 key 都不存在。(msetnx只是可以一次性设置多个key和value,其他的和setnx没有太多区别,这里就不给大家演示了)
(14)getset key value 将给定 key 的值设为 value ,并返回 key 的旧值(old value)
list:
它是一个字符串链表(它的底层实际是个链表),left、right都可以插入添加;如果键不存在,创建新的链表;如果键已存在,新增内容;如果值全移除,对应的键也就消失了。链表的操作无论是头和尾效率都极高,但假如是对中间元素进行操作,效率就很惨淡了。Redis 列表是简单的字符串列表,按照插入顺序排序。你可以添加一个元素导列表的头部(左边)或者尾部(右边)。
(1)lpush key value1 value2 将一个或多个值加入到列表头部
(2)rpush key value1 value2 将一个或多个值加入到列表底部
(3)lrange key start end 获取列表指定范围的元素,如果开始是0,结束是-1,那么代表取出链表的全部值。(开始和结束是下标的含义)
(4)lpop key 移出并获取列表第一个元素
(5)rpop key 移出并获取列表最后一个元素
(6)lindex key index 通过索引获取列表中的元素值(index是下标的值)
(7)llen 获取列表长度
(8)lrem key 0(数量) 值,表示删除全部给定的值。零个就是全部值 从左往右删除指定数量个值等于指定值的元素,返回的值为实际删除的数量
(9)ltrim key start(从哪里开始截) end(结束位置) 截取指定索引区间的元素
(10)trim key start(从哪里开始截) end(结束位置) 截取指定索引区间的元素
set:
Redis的Set是string类型的无序,不能重复的集合。
(1)sadd key value1 value 2 向集合中添加一个或多个成员
(2)smembers key 返回集合中所有成员,这个已经在上面为大家演示过了
(3)sismembers key member 判断member元素是否是集合key的
(4)scard key 获取集合里面的元素数量
(5)srem key value 删除集合中指定元素
(6)srandmember key 数值,从set集合里面随机取出指定数值个元素,如果超过最大数量就全部取出
(7)spop key 随机移出并返回集合中某个元素
(8)smove key1 key2 value(key1中某个值)作用是将key1中指定的值移除,加入到key2集合中
(9)sdiff key1 key2 在第一个set里面而不在后面任何一个set里面的项(差集)
(10)sinter key1 key2 在第一个set和第二个set中都有的元素(交集)
(11)两个集合所有元素(并集)
hash:
Redis hash 是一个键值对集合,是一个string类型的field和value的映射表,hash特别适合用于存储对象,k-v模式不变,但v是一个键值对,类似Java里面的Map<String,Object>
(1)hset key (key value) 向hash表中添加一个元素
(2)hget key key 向hash表中获取一个元素(已经在上一张图片为大家展示了哈)
(3)hmset key key1 value1 key2 value2 key3 value3 向集合中添加一个或多个元素
(4)hmget key key1 key2 key3 向集合中获取一个或多个元素
(5)hgetall key获取在hash列表中指定key的所有字段和值
(6)hdel key key1 key2 删除一个或多个hash字段
(7)hlen key 获取hash表中字段数量
(8)hexists key key 查看hash表中,指定key(字段)是否存在
(9)hkeys key 获取指定hash表中所有key(字段)(这个就只会获取key哦)
(10)hvals key 获取指定hash表中所有value(值)
(11)hincrby key key1 数量(整数) 指定hash表中某个字段加数量(和incr一个意思)
(12)hincrbyfloat key key1 数量(浮点数,小数)指定hash表中某个字段加数量,和incr一个意思
(13)hsetnx key key1 value1 与hset作用一样,区别是不存在赋值,存在了无效
zset:
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。zset的成员是唯一的,但分数(score)却可以重复。
(1)zadd key score value score value 向集合中添加一个或多个成员
(2)zrange key start end返回指定集合中key,若start是0,end是-1,则表示返回所有
(3)zrange key start end withscores 返回指定集合中的value和score,若start是0,end是-1,则表示返回所有集合中的value和score
(4)zrangebyscore key 开始score 结束score,返回指定score间的值
(5)zrem key score某个对应值(value),可以是多个值删除元素
(6)zcard key 获取集合中元素个数
(7)zcount key 开始score 结束score,获取分数区间内元素
(8)zrank key vlaue,获取value在zset中的下标位置(根据score排序)
(9)zscore key value 按照值获得对应的分数值
那么这次就更新到这里吧
如果小编的内容对您有帮助,就请您帮忙点关注和赞吧,点关注,不迷路!
更多推荐
所有评论(0)