[中级]Redis底层设计与数据类型详析

本文详细介绍了Redis的五大数据类型:字符串(string)、列表(list)、哈希(hash)、集合(set)和有序集合(sorted set),并结合具体场景如缓存、计数器、排行榜等,探讨了它们的使用策略。同时,提到了Redis作为内存数据库的高性能特点,以及位操作(BitMap)在统计和状态判断中的应用。
摘要由CSDN通过智能技术生成

本文是好久之前参考网上大佬教程,边学习边参考边做笔记,整理的内容,分享下大家学习~

如果这位大佬看见,请评论留下您的名字和博客地址,我这里修改为【转载

目录

快速入门-5大数据类型+使用场景

1. string 字符串

数值计算

位操作(BitMap):

2. LIST 列表

3.HASH字典

4.SET 集合

5.sorted_set/ zset 有序集合

延迟队列应用场景

排行榜

缓存

时间单位

计数器

分布式ID生成

海量数据统计

会话缓存·

分布式队列/阻塞队列

分布式锁实现

热点数据存储

社交类需求

排行榜

延迟队列


什么是Redis

Redis(Remote Dictionary Server) 是一个使用 C 语言编写的,开源的高性能非关系型(NoSQL)的键值对数据库。

与传统数据库不同的是 Redis 的数据是存在内存中的,所以读写速度非常快,因此 redis 被广泛应用于缓存方向,每秒可以处理超过 10万次读写操作。

Redis 是K-V型的数据库,整个数据库都是用字典来存储的,对Redis数据库的任何增删改查操作,实际上就是对字典中的数据进行增删改查

1. 可以存储海量数据,且可以根据键以O(1) 的时间复杂度取出或插入关联值

2. 键值对中键的类型可以是字符串,整型,浮点型等,且键是唯一的.

3. 键值对中的值类型可以是string, hash ,list, set, sorted set.

快速入门-5大数据类型+使用场景

1. string 字符串

string是Redis 使用最广泛,也是最简单的数据结构,Redis所有的key也是string类型,业务系统中通常会把业务数据序列化成一个json 字符串,然后存储到Redis中缓存起来,下次访问的时候,再取出来,反序列化供业务端使用

可通过 help 查看字符串操作命令

127.0.0.1:6379> help @string 
since: 2.6.0

常用命令

K-V 缓存:

指定key, value 完成设置于取值操作:

127.0.0.1:6379> set  name guojia
OK
127.0.0.1:6379> get name
"guojia"
127.0.0.1:6379> set  some_key some_value
OK
127.0.0.1:6379> get   some_key
"some_value"

如上操作,至少进行了两次网络请求,网络的利用率不高,如果有多个键值对,可以用如下优化

127.0.0.1:6379> mset name1 zhangsan name2 lisi name3 wangwu
OK
127.0.0.1:6379> mget name1 name2 name3
1) "zhangsan"
2) "lisi"
3) "wangwu"

默认情况下,没有给key设置过期时间,如果配置了持久化的话,数据将永久存在,可以通过设置过期时间,

# 10s 后, name1  将被失效
127.0.0.1:6379> expire name1 10  
(integer) 1

数值计算

127.0.0.1:6379> set readCount 1
OK
127.0.0.1:6379> incr readCount
(integer) 2
127.0.0.1:6379> decr readCount
(integer) 1
127.0.0.1:6379> incrby readCount 10
(integer) 11
127.0.0.1:6379> decrby readCount 5
(integer) 6

位操作(BitMap):

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

写程序的小王叔叔

感谢!您的打赏是我前进的动力~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值