Redis五种基本数据类型
发布日期:2021-05-06 15:52:09 浏览次数:30 分类:精选文章

本文共 2834 字,大约阅读时间需要 9 分钟。

什么是Redis

redis是一个高性能的key-value数据库,它是完全开源免费的,而且redis是一个NOSQL类型数据库,是为了解决高并发、高扩展,大数据存储等一系列的问题而产生的数据库解决方案,是一个非关系型的数据库。但是,它也是不能替代关系型数据库,只能作为特定环境下的扩充。

Redis常识

Redis默认有16个数据库

默认使用的是第0个数据库

端口号 默认6379

可以使用select 数字来切换数据库

DBSIZE 查看DB大小

keys * 查看数据库所有的key

flushdb 清空当前数据库

FLUSHALL 清空所有数据库

set name 1111

get name

111

Redis是单线程的 且速度非常快 基于内存操作 CPU不是Redis的性能瓶颈

Redis的性能瓶颈是根据机器的内存和网络带宽决定的

Redis为什么是单线程速度还是这么快?

Redis是c语言编写的 100000+的QPS 不比同样是key - value的Memecache差

Redis是把所有的数据放在内存中,所以用单线程去操作效率是最高的,多线程(CPU上下文切换 会有耗时) 对于内存系统来说 如果没有上下文切换最快。

Redis-key

启动服务 redis-serve kconfig/redis-config

测试连接

EXISTS name 判断键key是否存在

move name 1 移除当前的key

设置过期时间 EXPIRE name 10 设置key的过期时间 10秒钟自动过期 tt1 name 查看key的剩余时间

clear清理界面

type name 查看key的类型

五大基本数据类型

Redis主要有5种数据类型,包括String,List,Set,Zset,Hash,满足大部分的使用要求

数据类型 可以存储的值 操作 应用场景
STRING 字符串、整数或者浮点数 对整个字符串或者字符串的其中一部分执行操作对整数和浮点数执行自增或者自减操作 做简单的键值对缓存
LIST 列表 从两端压入或者弹出元素对单个或者多个元素进行修剪,只保留一个范围内的元素 存储一些列表型的数据结构,类似粉丝列表、文章的评论列表之类的数据
SET 无序集合 添加、获取、移除单个元素检查一个元素是否存在于集合中计算交集、并集、差集从集合里面随机获取元素 交集、并集、差集的操作,比如交集,可以把两个人的粉丝列表整一个交集
HASH 包含键值对的无序散列表 添加、获取、移除单个键值对获取所有键值对检查某个键是否存在 结构化的数据,比如一个对象
ZSET 有序集合 添加、获取、删除元素根据分值范围或者成员来获取元素计算一个键的排名 去重但可以排序,如获取排名前几名的用户

String类型(字符串)

内部结构使用SDS保存 类似与java中的ArrayList

常用场景:缓存功能 计数器 共享用户Session

APPEND key1 “11” 给key1追加字符串(如果没有这个key 就相当于set key)

key * 获得所以的key

EXISTS key1 判断某一个key是否存在

截取字符串STRLEN key 获取字符串长度

实现i++操作

set views 0

incr views +1操作

decr views -1操作

INCRBY views 10 +10操作

DECRBY views 10 -10操作

List集合(列表)

常用场景:粉丝列表 文章评论

可以从两端取出或压入数据 可以实现 队列 栈

LPUSH list one 将一个值或者多个值 放入列表的头部 从左边放进去

LPUSH list two

LPUSH list three

LRANGE list 0 -1 获取list全部的值

LRANGE list 0 1 获取0到1的值 获得的是 three two

RPUSH 将一个值或者多个值 放入列表的尾部 从右边放进去

移除左边第一个值 Lpop list 移除右边第一个值 Rpop list

lindex list 1获取下标为1的值

Llen list 返回列表的长度

移除特定的值

Lrem list 1 one 移除list列表其中的一个one 精准配备

Set(无序不重复集合)

自动去重 直接基于 Set 将系统里需要去重的数据扔进去,自动就给去重了

sadd myset “hello” 添加一个set无序集合 添加一个hello值

SMEMBERS myset 查看指定set的所有的值

ISMEMBER myset world 判断一个值是不是在set集合中

scard myset 查看set里面的元素个数

srem myset hello 移除hello元素

SRANDMEMBER myset 随机得到一个set里面的元素 可以在后面加数字获得的是随机的数字

spop myset 随机移除元素

Hash

包含键值对的无序散列表 本质和String没有太大区别 区别就是value变成了value)

key map

hset myhash field name新建一个hash 存放一个key vaule的值

hset myhash field name field1 name2 新增两个key value

hget myhash field 取得值

hget myhash field field2 取得2个键的值

hgetall myhash 查看所有的值

hdel myhash filed1 删除hash指定的key字段 对应的value也删除了

hgetall myhash 获得全部的值

hlen myhash 查看hash长度

HEXISTS myhash field1 判断hash中指定字段是否存在

只获得key hkeys myhash

只获取value hvals myhash

Zset(有序集合)

在set的基础上 增加了一个值

zadd myset 1 one

zadd myset 2 two 3 three 添加数据 前面的数字为序号

ZRANGE myset 0 -1 获取全部的值

ZRANGEBYSCORE salary -inf +inf按成绩排序 从最小到最大

ZRANGEBYSCORE salary -inf +inf withscores 按成绩排序 从最小到最大 同时输出成绩

ZRANGEBYSCORE salary -inf 2500 withscores 显示小于2500员工的升序排序

移除元素

zrange salary 0 -1 打印全部

zrem salart 小红 移除小红

三种特殊数据类型

geospatial 地理位置

Hyperloglog基数统计

Bitmap位图场景详解

上一篇:IDEA的DeBug使用
下一篇:CAP简述

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2025年05月06日 22时25分20秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

asp.mvc 4项目发布文件目录结构_如何用SpringBoot(2.3.3版本)快速搭建一个项目?文末有小彩蛋... 2023-01-24
aspen串联反应怎么输入_如何进步提升串联谐振试验装置的稳定性 2023-01-24
a推b等价于非a或b_AB胶/蜜月胶常见问题的原因分析及解决方法 2023-01-24
bat 命令返回结果_【批处理】带你入门命令行 2023-01-24
c++ string取子串_Integer与String的设计哲学 2023-01-24
c++ 数组批量赋值_数组之间不能赋值?穿个马甲吧! 2023-01-24
cad模糊查询符号_mysql 正则模式和like模糊查询 2023-01-24
continue可以用if判断里面吗_谁能说说if()else()里的continue是干嘛的? 2023-01-24
ctrl c 和 ctrl v 不能用了_神奇操作,原来CTRL键还能这么用 2023-01-24
cytoscape安装java_Cytoscape史上最全攻略 2023-01-24
c语言程序设计年历显示,C语言程序设计报告《万年历》.doc 2023-01-24
C语言程序设计梁海英答案,1.5 习题 2023-01-24
c语言编写单片机中断,C语言AVR单片机中断程序写法 2023-01-24
#pragma region、{} 2023-01-24
ddr2的上电顺序_S5PV210 DDR2初始化 28个步骤总结 2023-01-24
deque stack java_「集合系列」- 初探 java 集合框架图 2023-01-24
easyexcel 导出 代码翻译converter_【starter推荐】简单高效Excel 导出工具 2023-01-24
elasticsearch 查询_Elasticsearch地理信息存储及查询之Geo_Point 2023-01-24
embedding层_【预估排序】Embedding+MLP: 深度学习预估排序通用框架(一) 2023-01-24
excel中最常用的30个函数_Excel玩转数据分析常用的43个函数! 2023-01-24