Redis各种数据类型的应用场景
redis是一种key values形式的非关系型数据库,通过内存存储,也可以把数据持久化到本地文件中。
redis支持丰富的数据类型,String,list,set,zset,hash,下面说一下各种数据类型的应用场景。
String:
string 类型进行数据存储的时候主要有get,set,incr(increase加一递增),decr(decrease减一递减)等操作。incr等指令本身具有原子操作,所以我们可以利用redis的incr,incrby,decr,decrby来实现原子计数操作。例如:在某场景下面有三个用户同事访问,然后对其进行加一操作,那么最后的值一定会加三。可以利用这一特性来实现业务上的统计数据的需求。
Llists:
redis的list底层不是数组,而是链表。lists常用的操作有lpush(左边插入),rpush(右边插入),lrange(取数据,lranger key 开始下标 结束下标)。每往lists中插入一条数据,这条数据将作为下标为0的数据。栈后进先出的那种形式。
例如:我们可以利用list来实现一个消息队列,而且可以确保先后顺序,可以利用lrange来实现分页功能。在博客系统中,每篇博文的评论都可以放在单独一个list中。
set:
reids的集合,是一种无序的集合,集合中的元素没有先后顺序。
集合中相关的操作也很丰富,如添加元素,删除已有元素,取交集,取并集,取差集。
例如:QQ有一个社交功能叫“好友标签”,大家可以给你的好友贴标签,这时候就可以用redis集合来实现,把用户的每个集合存在一个集合中。
如果要查看共同好友,也可以把好友存在集合中,比较交集。
zset:
redis的有序集合,每个集合都提供了一个序号,赭石排序的依据。
例如:暂无。
hash:
hashes存的是字符串和字符串之间的映射,比如一个用户要存储其全名,姓氏,年龄等,就适合用hash。hash比较像map。
Redis各种数据类型的应用场景的更多相关文章
- 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的数据类型及使用场景
1.redis 的数据类型 String 字符串 Hash 哈希 List 列表 Set 集合 ZSet(Sorted Set) 有序集合 2.使用场景 2.1 String 用户token 可以用r ...
- 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 ...
随机推荐
- python基础之语句字符串
python的种类: jpython java写的python ironpython c#写的python cpython ...
- Game Engine Architecture 4
[Game Engine Architecture 4] 1.a model of multiple semi-independent flows of control simply matches ...
- 提高GitHub下载速度
修改/etc/hosts 加上 151.101.72.249 GitHub.global.ssl.fastly.net 192.30.253.112 github.com
- Auzone AT60 TPMS Tool Update & Authorization Service: FREE
This is a tutorial with step-of-step explanation of Auzone AT60 TPMS Tool Update & Authorization ...
- 微信小程序开发——使用mock数据模拟api请求
前言: 微信小程序开发中,后端提供了接口设计文档,前端可以先mock数据模拟api请求进行开发调试,而且可以根据需要设计mock文件的格式和内容,这样在后端接口开发完成之前,前端可以最大限度的完成前端 ...
- PCIe link up bug 分析
Xilinx两块开发版PCIe link up时间相差很大,Virtex-6开发版PCIe link up时间超过60ms,而Virtex-7 PCIe link up时间只有~25ms. 分析过 ...
- Centos7下面配置客户端OpenVPN
安装 openvpn yum install -y openvpn vim 配置默认的 daemon 文件 vim /usr/lib/systemd/system/openvpn@.service [ ...
- composer 安装thinkphp
//tp 项目文件夹名称 composer create-project topthink/think tp //图形验证码包 composer require topthink/think-capt ...
- dsPIC30F 细节点问题不定期更新ing
知识点1 TRISD: I/O 引脚 方向控制 寄存器 (1--input, 0--Output)LATD: I/O 引脚 输出锁存器PORTD: 是双向I/O 端口 备注:LATD = 0x000 ...
- HYSBZ 2743 (树状数组) 采花
题目:这里 题意: 在2016年,佳媛姐姐刚刚学习了树,非常开心.现在他想解决这样一个问题:给定一颗有根树(根为1),有以下 两种操作:1. 标记操作:对某个结点打上标记(在最开始,只有结点1有标记, ...