redis五种(字符串、hash、list、set、zset)数据结构API使用介绍

1、字符串:API使用

del key:O(1),删除以key为键的数据,并将值一并删除,删除成功返回删除条数,反之返回0,

可同时删除多个键值对:格式:del key1 key2 key3...删除成功返回删除条数,反之返回0。

get key:O(1),获取以key为键的值,键存在则返回值,不存在返回null(nil)。

set key value:设置key值为value,无论key是否存在都设置key的值为value,O(1)。

decr/incr key:key自减/加一,O(1)。

decrby/incrby key number:key减/加number值,O(1)。

key不存在将自行创建,key存在且值数字的话,将报错:(error) ERR value is not an integer or out of range。

setnx key value:设置key值为value,当key不存在的情况下才设置key的值为value,O(1)。

set key value xx::设置key值为value,当key存在的情况下才设置key的值为value(重置key中的value值),O(1)。

mset key1 value1 key2 value2 key3 value3:批量设置key的值。O(n)。

mget key1 key2 key3.....:批量获取key的值O(n)。

getset key value:给key设置新的值,并返回旧的值,O(1)

append key value:给key的值的后面加上valueO(1)

strlen key:计算key中value的值的字节长度,(注意中文占两个字节)O(1)

incrbyfloat key value:给key的值自增value(浮点类型)O(1)

getrange key range1 range2:获取key的值中下标range1-range2之间的值,(下标从0开始算起)O(1)

setrange key range value:设置key的值中下标为range值为value,(下标从0开始算起)O(1)

2、hash(哈希)

hget key value:获取key中对应field的属性的value值。O(1)

hset key field value:设置key中对应field的属性为value值。O(1)

hdel key field:删除key中对应field的属性和所对应的value值。O(1)

hmget key field1 field2 field3....:获取多个key中对应的属性的value值。O(n)

hmset key field1 value1 field2 value2 field3 value3....:设置多个key中对应的field属性的value值。O(n)

hexists key field:判断key中对应的field属性是否存在,O(1)

hlen key:获取key中属性的数量,内存已经优化好计算出数量,不需要每次都重新计算。O(1)keys 

hgetall key:获取所有key中对应field的属性和value值。O(n)

hvals key:返回key中对应的所有field对应的value的值。O(n)

hkeys key:返回key中对应的所有的field。O(n)

hsetnx key field value:设置key中field对应的数值值为value,如果field存在则设置失败。O(1)

hincrby key field intCount value:设置key中field增加value值。O(1)

hincrbyfloat key field floatCount:设置key中field增加value个浮点数。O(1)

3、list(列表)

rpush key value1 value2 value3.....:从列表的右边开始插入数据,先插入value1到value2到valueN。O(1~n)

lpush key value1 value2 value3....:从列表的左侧开始插入数据,先插入value1到value2到valueN。O(1~n)

linsert key before|after value newValue:在value(第一个出现的值,value值不存在则插入失败返回-1)值之前/之后(选择其中的before/after)插入新数据newValue值

lpop key:从列表key中左侧弹出一个值,返回弹出值。

rpop key:从列表key中右侧弹出一个值,返回弹出值。

lrem key count value:根据count值删除列表中值为value的数值,返回删除个数。O(n)

count>0,从左到右,删除最多count个value相等的值

count<0,从右到左,删除最多count的绝对值个value相等的值

count=0,删除所有value相等的值 

ltrim key start end:删除除了start-end之间的值,下标从0开始算起,O(n)

lrange key start end:获取索引值为start-end之间的值,左边算起开始为0,右边算起开始为-1,O(n)

lindex key index:获取下标值为index的值,O(n)

llen key:计算list中的数值长度,在列表内部已经存储了列表的长度不用重新计算长度,O(1)

lset key index newValue :设置列表下标为index的值为newValue,O(n)

blpop key timeout:lpop的阻塞版本,timeout为阻塞超时时间,timeout=0为永远不阻塞,O(1)

brpop key timeout:rpop的阻塞版本,timeout为阻塞超时时间,timeout=0为永远不阻塞,O(1)

实现功能(可参考实现方式):

LPUSH + LPOP = Stack:栈

LPUSH + RPOP = Queue:队列

LPUSH + LTRIM = capped Collection:有限列表

LPUSH + BRPOP = Message Queue:消息队列

4、set(无序集合)

sadd  key element1 element2 element3...... :向集合key中谈添加element(集合中存在element,则添加失败)。O(1)

srem  key element1 element2 element3......:删除集合key中的element,。O(1)

scard key:计算key中的元素个数。O(1)

sismember key member:判断member是否为集合key中的元素

srandmember key count :随机取出集合key找那个的count个元素。

smembers:获取集合中所有的元素。

spop:从集合中随机弹出一个元素,即删除。O(1)

sdiff key1 key2:算出key1和key2之间的差集,返回key1的值。

sinter key1 key2:算出key和key2之间的交集(共有的)。 

sunion:算出key1和key2的并集,差集+交集=并集

sdiff|sinter|sunion + store destkey....将差集、交集、并集结果保存在destkey中(保存之后不需要重新计算,节省内存计算,第二次获取的时候直接在destkey中获取)。

用法:sdiffstore dest key1 key2,将存在key1中的元素不存在key2中的元素存储到dest集合中。

sinterstore dest key1 key2,将存在key1中的元素和存在key2中的元素存储到dest集合中。

sunionstore dest key1 key2,将存在key1中的元素和key2中的元素存储到dest集合中(重复的元素只存储一次)。

5、zset(有序集合)

zadd key score element:(score可重复且为数字,element不可重复),添加score和element到集合中。O(logN)

zrem key element1 element2....:删除集合中的元素,O(1)

zscore key element:返回元素的分数,O(1)

zincrby key incrScore element: 增加或减少元素的分数,incrScore代表分数,O(1)

zcard key: 返回集合中的元素个数,O(1)

zrange key start end [WITHSCORES]:返回指定索引范围内的升序元素【选项WITHSCORES为是否将分数打印,可选项】。O(log(n)+m),n=有序集合的元素个数,m=打印范围内的元素个数

zrangebyscore key minScore maxScore[WITHSCORES]:返回指定分数内(包含两个数值minScore、maxScore)的元素,O(log(n)+m),n=有序集合的元素个数,m=打印范围内的元素个数

zcount key minScore maxScore:返回有序集合内在指定分数内的个数,O(log(n)+m),n=有序集合的元素个数,m=打印范围内的元素个数

zremrangebyrank key start end:删除指定排名内的升序元素,O(log(n)+m),n=有序集合的元素个数,m=打印范围内的元素个数

zremrangebyscore key minScore maxScore:删除指定分数内(包含两个数值minScore、maxScore)的升序元素,O(log(n)+m),n=有序集合的元素个数,m=打印范围内的元素个数

zrevrank:

zrevrange:

zrevrangebyscore:

zinterstore:

zunionstore:

 

redis的命令可参考:http://doc.redisfans.com/index.html

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值