Redis数据类型的常用API以及使用场景
一、通用命令
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以及使用场景的更多相关文章
- Redis数据类型和常用命令
Redis相较于其它的数据库虽然简单,但是要熟记所有命令的用法也并非易事.一个简单的技巧是通过要操作的数据类型来将这些命令进行结构化. 数据类型和对应命令 所有存储于redis中的数据都对应于一个键值 ...
- jedis实现操纵redis的常用api及使用场景
简单记录一下,和描述一下常用的业务场景.好记性不如烂笔头. pom.xml <!--整合redis--> <dependency> <groupId>redis.c ...
- Redis数据结构和常用API
Redis是一个速度非常快的非关系型数据库,可以存储键与5中不同数据结构类型之间的映射.这5种数据结构分别是STRING(字符串).LIST(列表).SET(集合).HASH(散列).ZSET(有序集 ...
- redis笔记总结之redis数据类型及常用命令
三.常用命令 3.1 字符串类型(string) 字符串类型是Redis中最基本的数据类型,一个字符串类型的键允许存储的数据的最大容量为512MB. 3.1.1 赋值与取值: SET key valu ...
- Redis数据类型及常用命名总结
Redis数据类型: Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). 1.String(字符串) ...
- 几种数据类型的常用API
数字 int() 字符串 #==========join===========在字符串前后插入字符 li = 'alexericrain' new_li = '_'.join(li) print(ne ...
- redis五种数据类型和常用命令及适用场景
一.redis的5种数据类型: 1.基础理解: string 字符串(可以为整形.浮点型和字符串,统称为元素) list 列表(实现队列,元素不唯一,先入先出原则) set 集合(各不相同的元素) h ...
- redis数据类型及常用命令介绍(图文实例)
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAhgAAAFLCAYAAACUdvXUAAAgAElEQVR4nO3da1da58L2fT5KfPvc96 ...
- redis数据类型及常用命令使用
redis干啥的,一般人都知道,但很多人只知道是个缓存数据库,其它的就不知道了,本猿无能亦是如此,然知耻而后勇,我们该理一理这里边的一些逻辑,看看redis究竟是怎么一回事儿,能干啥,怎么做的,这样才 ...
随机推荐
- html5实现web app摇一摇换歌
微信可以摇歌曲,根据声音识别出歌曲,然后返回歌曲信息,利用html5的deviceOrientation特性和deviceMotion事件也可以在web app上实现类似于微信摇一摇的功能,原生的ap ...
- IDEA里面添加lombok插件,编写简略风格Java代码
在 java平台上,lombok 提供了简单的注解的形式来帮助我们消除一些必须有但看起来很臃肿的代码, 比如属性的get/set,及对象的toString等方法,特别是相对于 POJO; 关于lomb ...
- P2P(WFD)之RegClass *****************************TBD
三个Action Frame的IE会有带上RegClass的信息 Listen Channel element, Channel List element, Operation Channel ele ...
- spring笔记(一)
1. 回顾 Struts与Hibernate可以做什么事? Struts, Mvc中控制层解决方案 可以进行请求数据自动封装.类型转换.文件上传.效验… Hibernate, 持久层的解决方案: 可以 ...
- Java IO 之 FileFilter与FilenameFilter
FileFilter与FilenameFilter可以实现对文件的过滤,他们都是接口,具体的过滤规则需要我们自己编写 1.FileFilter package org.zln.io.file; imp ...
- iOS-数据持久化之Sqllite
iOS中的数据存储方式 Plist(NSArray\NSDictionary) Preference(偏好设置\NSUserDefaults) NSCoding(NSKeyedArchiver\NSk ...
- P3457 [POI2007]POW-The Flood
题意翻译 Description 你手头有一张该市的地图.这张地图是边长为 m∗n 的矩形,被划分为m∗n个1∗1的小正方形.对于每个小正方形,地图上已经标注了它的海拔高度以及它是否是该市的一个组成部 ...
- Linux和Windows上实现的异同-Linux的自适应ACK
上周有同事问,延迟ACK到底对应用层会产生什么后果,我也不知道该如何作答,于是丢了一个链接: TCP之Delay ACK在Linux和Windows上实现的异同-Linux的自适应ACK: 是的,这是 ...
- kubernetes 参考资料
kubernetes 参考资料 非常建议先花20分钟,完成这个官方的交互式指南:https://kubernetes.io/docs/tutorials/kubernetes-basics/ 这个教程 ...
- CSS中z-index全解析
一.z-index解释 z-index属性决定了一个HTML元素的层叠级别,元素层叠级别是相对于元素在Z轴上(与X轴Y轴相对照)的位置而言.一个更高的z-index值意味着这个元素在叠层顺序中会更靠近 ...