首页 > Windows开发 > 详细

Redis数据类型的常用API以及使用场景

时间:2018-02-14 18:12:59      阅读:197      评论:0      收藏:0      [点我收藏+]

 一、通用命令

1、keys  遍历出所有的key

一般不在生产环境使用

技术分享图片

 

2、dbsize key的总数

技术分享图片

 

3、exists key

技术分享图片

 

4、del key  删除指定key-value

技术分享图片

 

5、expire key secods  设置多少秒过期

ttl  还剩多少秒过期

技术分享图片

 persist 取消过期时间

技术分享图片

6、type 返回key的类型

技术分享图片

 

 

 二、单线程

一个次只能执行一个命令

拒绝长慢命令(keys等)

为什么单线程还这么快

1、纯内存(主要)

2、非阻塞IO

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

 

三、数据类型

1、字符串

类型:可以存字符串、整型、二进制、json等

大小:可以存512M

场景:缓存、计数器

命令:

1.1、get、set、del

1.2、set k v 不管k是否存在,都设置

       setnx k v    k不存在才设置

       set k v xx    k存在才设置

1.3、mset 批量设置

       mget 批量获取

 技术分享图片

1.5

getset key newvalue   设置新的key并返回旧value

append key value    将value追加到旧的value

strlen key   返回字符串的长度(注意中文)

1.6

incrbyfloat 增加浮点数

getrange   获取字符串制定下标所有的值

setrange    设置指定下标所对应的值

1.7、适合做计数器,单进程无竞争

incr    自增1,如果key不存在为1

decr   自减1,如果key不存在为-1

incrby 自增k,如果key不存在为k

decrby 自减key,如果key不存在为-k

技术分享图片

使用场景:缓存应用

技术分享图片

 

 2、哈希

一个键对应多个键值的结构,可以理解为小redis

技术分享图片

哈希的API操作都是以h开头

2.1、hset、hget、hdel

技术分享图片

技术分享图片

 

2.2

hexists  key是否存在field

hlen      key中field的总数

2.3

hmget  批量获取

hmser   批量设置

 2.4

hgetall

 2.5、hsetnx、hincrby、hincrbyfloat

技术分享图片

 

使用场景

统计每个用户个人主页的访问量

hincrby user:1:info pageview count

缓存储存视频基本信息

技术分享图片

 

编程对比:

第一种:将整体数据序列化存进字符串

第二种:将数据分别存进字符串

第三种:将数据存进哈希

技术分享图片

 

 4、列表

有序、可重复、左右两边可以插入弹出

技术分享图片

 

列表的API都以L开头

4.1、增

rpush  从右边插入

lpush   从左边插入

linsert  key before|after value newvalue在指定的值前后插入数据

技术分享图片

 

4.2、删

lpop  从左弹出

rpop  从右弹

lrem key count value 根据count值,从列表中删除所有与balue相等的值

技术分享图片

 

 

 

 

技术分享图片

 

 

 4.3、查

lrange

技术分享图片

 

 

 lindex 

技术分享图片

llen 

技术分享图片

4.4、改

lset

技术分享图片

 

 

4.5、 查漏补缺

blpop

brpop

技术分享图片

 

4.6、使用场景

微博时间轴

技术分享图片

 4.7、TIPS

1、栈

2、队列

3、有固定数量的列表

 

技术分享图片

 

 5、集合

 集合内不能重复、无序、支持集合间操作

技术分享图片

 

 技术分享图片

5.1、集合内

技术分享图片

 

技术分享图片

 

 

使用场景技术分享图片

可以用在点赞、抽奖中

 

 5.2、集合间

技术分享图片

 

使用场景:

共同关注、共同粉丝 

 

6、有序集合

特点:

技术分享图片

API

6.1、zadd  添加元素

技术分享图片

6.2、zrem 删除元素

技术分享图片

6.3、zscore 获取分数

技术分享图片

6.4、zincrby   增加或减少分数

技术分享图片

 

6.5、zcard     返回元素总个数

 技术分享图片

实例:

技术分享图片

6.6、zrange  返回指定索引范围内升序元素

 技术分享图片

6.7、zrangebyscore  返回制定分数范围的升序元素

技术分享图片

 

 6.8、zermrangebyrank

技术分享图片

6.9、zremrangbyscore  删除指定分数的升序元素

技术分享图片

 

 

  使用场景:排行榜

 

Redis数据类型的常用API以及使用场景

原文:https://www.cnblogs.com/lamp01/p/8448600.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!