获取深户股市列表api_一文掌握Redis常用API

Redis API的使用和理解

ce024acd68d08a58c1d6a3fd064b41b9.png

通用命令

keys:遍历所有key(keys *)

dbsize:计算Key的总数

exists key:判断key是否存在

del key[key...]:删除指定key-value

expire key seconds:key在seconds秒后过期

ttl key:查看key剩余的过期时间

persist key:去掉Key的过期时间

type key:返回key的类型

数据结构和内部编码

4c0a9e4b81f5b58ce104b2ea7b861e94.png

单线程架构

Redis在同一时间点,只会执行一条命令

7b7fcf00b1f8aa4359699a74f810974a.png

Redis中单线程为什么这么快?

1,纯内存

2,非阻塞IO

3,避免线程切换和竞态消耗

字符串类型

key:字符串 value:(字符串、数字、json、二进制...)

get key:获取key对应的value

set key value:设置key-value

del key:删除key-value

incr key:key自增1,如果key不存在,自增后get(key)=1

decr key:自减,如果key不存在,自减后get(key)=-1

incrby key k:key自增Key,如果Key不存在,自增后get(key)=k

decrby key k:key自减Key,如果Key不存在,自增后get(key)=-k

set key value:不管Key是否存在,都设置

setnx key value: key不存在才设置

set key value xx: key 存在才设置

mget key1 key2 key3...:批量获取key,原子操作

mset key1 value1 key2 value2 ...:批量设置key-value

getset key newvalue:set key newvalue并返回旧的value

append key value:将value追加到旧的value

strlen key:返回字符串的长度(注意中文,中文不是占有一个字节)

incrbyfloat key 3.5:增加key对应的值3.5

getrange start end:获取字符串指定下标所有的值

setrange key index value:设置指定下标所有对应的值

实战:

记录网站每个用户个人主页的访问量?--incr userid:pageview

缓存视频的基本信息(数据源在mysql)?伪代码

分布式id生成器? incr id

哈希类型

特点:key field value

field不能相同,value可以相同

01c0d40a8276105b230e614e6f89fcd8.png
ec17f040829cfe8568c98b8e67d4e6e7.png

重要API:

hget key field:获取hash key对应的field的value

hset key field value:设置hash key对应field的value

hdel:删除hash key 对应field的value

hexists key field:判断hash key是否有field

hlen key:获取hash key field的数量

hmget key field1 field ...fieldN:批量获取hashkey的一批field对应的值

hmset key field1 value1 field2 value2 ... fieldN valueN:批量设置hash key的一批 field value

hgetall key:返回hash key对应所有的field和value

hvals key:返回hash key对应所有field的value

hkeys key:返回hash key对应所有field

实战:

记录网站每个用户个人主页的访问量?

hincrby user:1:info pageview count

缓存视频的基本信息?

hsetnx key field value:设置hash key对应field的value(如field已经存在则失败)

hincrby key field intCounter:hash key对应的field的value自增intCounter

hincrbyfloat key field floatCounter:hincrby浮点数版

列表类型

特点:有序、可重复

8de8cf31da9bd97421460f915374a020.png

rpush key value1 value2 ... valueN:从列表右端插入值(1-N)

lpush key value1 value2 ... valueN:从列表左端插入值(1-N)

linsert key before|after value newValue:在list指定的值前|后插入newValue

3091c9a3f9536118ae19c436c77a07e3.png

lpop key:从列表左侧弹出一个item

rpop key:从列表右侧弹出一个item

lrem key count vlaue:根据count值,从列表中删除所有value相等的项

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

count<0,从右到左,删除最多Math.abs(count)个value相等的项

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

ltrim key start end:按照索引范围修剪列表

lrange key start end(包含end):获取列表指定索引范围所有item

lindex key index:获取列表指定索引的item

llen key:获取列表长度

lset key index newValue:设置列表指定索引值为newValue

tips:

栈:

lpush+lpop=statck

队列:

lpush+rpop=queue

有固定数量的列表

lpush+ltrim

消息队列:

lpush+brpop

集合类型

特点:无序、不可重复

c09837a8f8f2b99564262d3ebf118265.png

sadd key element:向集合key添加element(如果element已经存在,添加失败)

srem key element:将集合key中的element移除掉

cdfb6e60e2ab9f294eee6f7b309e87e6.png

实战:

抽奖系统

标签(tag)

1,给用户添加标签

7af0b950033bf1b75acafbc026b52cb2.png

2,给标签添加用户

ced583a689c0cb8f4ea1c6c967d8505b.png

集合间的操作: sdiff sinter sunion

75a78f251c7f6492b4dcc48bf9db77dd.png
971efc0b2e7e70b3a904f3e95f30edaf.png

实战

a5bfbada805be16323b09b5f4380d0de.png

有序集合类型

特点:有序

7998691829436e7fb4794ea7ad2d5373.png

集合vs有序集合

6b56800a210cc651a4d052f8389f52ba.png

重要api:

zadd key score element(可以是多对)

00a9366f99e854bd4e24cbd3922a09ab.png

zrem key element(可以是多个)删除元素

e606b62122324d80a7c866b2eca0bd32.png

zscore key element: 返回元素的分数

37165c13f95b52b952f027f4c35443d5.png

zincrby key increScore element:增加或减少元素的分数

zcard key:返回元素的个数

zrange key start end[withscores]:返回指定索引范围的升序元素[分值]

zrangebyscore key minScore maxScore[withscores]:返回指定分数返回内的升序元素

23ad9a2a8323c52b8498e73a15ebfc14.png

zcount key minScore maxScore:返回有序集合内在指定分数返回内的个数

zremrangebyrank key start end:删除指定排名内的升序元素

zremrangebyscore key minScore maxScore:删除指定分数内的升序元素

48e61b581b17186736c51fd001be48d6.png

实战:排行榜

2d7405ae44cdcbf2e159d1f9ca0980e1.png

score :timeStamp saleCount followCount

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值