Redis的数据类型及使用场景
1.redis 的数据类型
- String 字符串
- Hash 哈希
- List 列表
- Set 集合
- ZSet(Sorted Set) 有序集合
2.使用场景
2.1 String
用户token
可以用redis来记录用户token并设置过期时间
小龙测试:0>set 1001 tokenslkdjflksdjflkdsj ex 600
"OK"
小龙测试:0>get 1001
"tokenslkdjflksdjflkdsj"
小龙测试:0>TTL 1001
"592"
主键记录
分布式的服务可以通过redis来记录主键的最大值
小龙测试:0>set t_user 1
"OK" 小龙测试:0>incrby t_user 1
"2" 小龙测试:0>incrby t_user 1
"3" 小龙测试:0>get t_user
"3"
ip访问
可以通过redis记录ip访问次数进行黑名单的限制
小龙测试:0>set 127.0.0.1 1 ex 600
"OK" 小龙测试:0>incrby 127.0.0.1 1
"2" 小龙测试:0>ttl 127.0.0.1
"556" 小龙测试:0>get 127.0.0.1
"2"
2.2 Hash
用户信息等对象的存储
小龙测试:0>HSET zhucw name "zhuchunwang"
"1" 小龙测试:0>HSET zhucw age "30"
"0" 小龙测试:0>HSET zhucw id "100"
"1" 小龙测试:0>HGET zhucw
"ERR wrong number of arguments for 'hget' command" 小龙测试:0>HGET zhucw id
"100" 小龙测试:0>HGETALL zhucw
1) "age"
2) "30"
3) "name"
4) "zhuchunwang"
5) "id"
6) "100"
2.3 List
消息队列 & 电商秒杀
# 从左侧往mq中放入元素
小龙测试:0>lpush mq message1
"1"
小龙测试:0>lpush mq message2
"2"
# 从右侧往mq中放入消息
小龙测试:0>rpush mq 小龙测试:0>message3
"3"
# 查看mq长度
小龙测试:0>llen mq
"3"
# 查看mq从第一个到最后一个(所有元素)
小龙测试:0>lrange mq 0 -1
1) "message2"
2) "message1"
3) "message3"
# 查看mq从第一个到第二个
小龙测试:0>lrange mq 0 1
1) "message2"
2) "message1"
小龙测试:0>lrange mq 1 2
1) "message1"
2) "message3"
# 从左边截取一个
小龙测试:0>ltrim mq 0 1
"OK"
小龙测试:0>lrange mq 0 -1
1) "message2"
2) "message1"
小龙测试:0>lpush mq message4
"3"
小龙测试:0>lrange mq 0 -1
1) "message4"
2) "message2"
3) "message1"
# 从左边取出一个
小龙测试:0>lpop mq
"message4"
小龙测试:0>lrange mq 0 -1
1) "message2"
2) "message1"
# 从左边添加两个 message 和 5
小龙测试:0>lpush mq message 5
"4"
# 从右边取走一个
小龙测试:0>rpop message
null
小龙测试:0>rpop mq
"message1"
小龙测试:0>lrange mq 0 -1
1) "5"
2) "message"
3) "message2"
2.4 SET
好友集合
# 新增元素
小龙测试:0>SADD zcw aaa
"1"
小龙测试:0>SADD zcw bbb
"1"
小龙测试:0>SADD zcw ccc
"1"
小龙测试:0>SADD zcw ccc
"0"
# 查看元素
小龙测试:0>smembers zcw
1) "aaa"
2) "ccc"
3) "bbb"
小龙测试:0>SADD xm aaa
"1"
小龙测试:0>SADD xm ddd
"1"
小龙测试:0>SADD xm ddd
"0"
小龙测试:0>smembers xm
1) "ddd"
2) "aaa"
# 以zcw为基准,xm中没有的
小龙测试:0>sdiff zcw xm
1) "ccc"
2) "bbb"
# zcw 和 xm的交际
小龙测试:0>sinter zcw xm
1) "aaa"
2.5 ZSET
电商排序、热搜等
# 新增元素
小龙测试:0>ZADD phone 100 huawei
"1" 小龙测试:0>ZADD phone 90 xiaomi
"1" 小龙测试:0>ZADD phone 110 apple
"1" 小龙测试:0>ZADD phone 80 vivo
"1" # 查看元素 从小到大
小龙测试:0>ZRANGE phone 0 10 WITHSCORES
1) "vivo"
2) "80"
3) "xiaomi"
4) "90"
5) "huawei"
6) "100"
7) "apple"
8) "110"小龙测试:0>
# 查看元素 分值从大到小
小龙测试:0>Zrevrange phone 0 10 withscores
1) "apple"
2) "110"
3) "huawei"
4) "100"
5) "xiaomi"
6) "90"
7) "vivo"
8) "80"
Redis的数据类型及使用场景的更多相关文章
- Redis各种数据类型的应用场景
redis是一种key values形式的非关系型数据库,通过内存存储,也可以把数据持久化到本地文件中. redis支持丰富的数据类型,String,list,set,zset,hash,下面说一下各 ...
- Redis各种数据类型的使用场景
Redis的六种特性 l Strings l Hashs l Lists l Sets l Sorted Sets l Pub/Sub Redis各特性的应用场景 Strings Strings 数据 ...
- 一文搞定Redis五大数据类型及应用场景
本文学习知识点 redis五大数据类型数据类型:string.hash.list.set.sorted_set 五大类型各自的应用场景 @TOC 1. string类型 1-1 string类型数据的 ...
- Redis各个数据类型的使用场景
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合). Redis列表命令 参考:http://www.r ...
- redis的数据类型与应用场景(二)
1. 如何学习 redis有好多数据类型,有这么多数据类型,我们不可能每个都记得完完全全.但是我们必须知道它有哪些数据类型,每个数据类型是怎样的,有什么作用.redis的每一个数据类型都有一大堆命令, ...
- Redis系列之----Redis的数据类型及使用场景
Redis是一个开源的.高性能的.基于键值对的缓存与存储系统,能够提供多种不同的键值数据类型来适应不同场景下的缓存和存储需求. Redis中所有的数据都存储在内存中,因此读写速度非常快,相 ...
- Redis常用数据类型及使用场景
Redis最为常用的数据类型 字符串(String) 字符串列表(list) 字符串集合(set) 哈希(hash) 有序的字符串集合(sorted set) String(字符串) 字符串是最基本的 ...
- Redis的数据类型以及应用场景
1. Redis的作用 1.1 Redis可以做什么 1.缓存:缓存机制几乎在所有的大型网站都有使用,合理地使用缓存不仅可以加快数据的访问速度,而且能够有效地降低后端数据源的压力.Redis提供了键值 ...
- Redis多种数据类型以及使用场景
SDS简单动态字符串 struct sdshdr { // 记录buf数组中已使用字节的数量 // 等于SDS所保存字符串的长度 int len; // 记录buf数组中未使用字节的数量 int fr ...
随机推荐
- redis 之 持久化
Redis支持RDB和AOF两种持久化机制,持久化功能有效地避免因进程退出造成的数据丢失问题,当下次重启时利用之前持久化的文件即可实现数据恢复. 1.RDB持久化 RDB持久化是指在指定的时间间隔内将 ...
- 女生学Java编程是什么感受?
那我就代表女生来说说感受 在编程的世界很难遇到好看的帅哥 记得当年15年7月4号是我实习生入职的日子,因为是校企合作,所以没有面试.老师推荐.直接入职.刚来北京第一个感觉就是人多,还有就是热.刚到公司 ...
- PHP imagearc - 画椭圆弧
imagearc — 用于画椭圆弧.高佣联盟 www.cgewang.com 语法 bool imagearc ( resource $image , int $cx , int $cy , int ...
- PHP crypt() 函数
定义和用法 crypt() 函数返回使用 DES.Blowfish 或 MD5 算法加密的字符串.高佣联盟 www.cgewang.com 在不同的操作系统上,该函数的行为不同,某些操作系统支持一种以 ...
- 痞子衡嵌入式:MCUXpresso IDE下使用J-Link下载算法在Flash调试注意事项(i.MXRT500为例)
大家好,我是痞子衡,是正经搞技术的痞子.今天痞子衡给大家介绍的是MCUXpresso IDE下使用J-Link下载算法在Flash调试注意事项. 痞子衡前段时间写过一篇小文<为i.MXRT设计更 ...
- P3250 [HNOI2016]网络
LINK:网络 一棵树 每次添加一条路径 或者删除之前的一条路径 或询问除了不经过某个点之外剩下的最大值. 一个显然的思路 对于一条路径的权值我们直接把权值塞上去 标记永久化一下即可. 考虑如何求答案 ...
- layui 父页面获取弹窗传递的值 和 父页面传值给子弹窗的方法
1.父页面获取子页面(弹窗)的值: 现在父页面页面加载方法中定义方法,专门用来获取从子页面的值 $(document).ready(function() { //拿到子窗口中传回的数据 functio ...
- 大话Android中的Handler机制
在Android的线程间通信中,Handler独当一面,无论是framework层还是app层中都出现的相当频繁,有必要好好的拿出来深挖一下它的实现原理.而要说Handler的通信机制,除了Handl ...
- OAuth2.0-3客户端授权放到数据库
授权得客户端信息.授权码信息全都存在数据库 1.建表 官方给了个sql文件:https://github.com/spring-projects/spring-security-oauth/blob/ ...
- (转)Linux 下栈溢出问题分析解决 *** stack smashing detected *** XXXX terminated
Linux 下栈溢出问题分析解决 *** stack smashing detected *** XXXX terminated 1.利用gdb 或者valgrind 定位到具体的代码 最近在Linu ...