IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Redis五大数据类型详解 -> 正文阅读

[大数据]Redis五大数据类型详解

官网对于redis的介绍

官网对于redis的介绍

----Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间 件MQ。 它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合 (sets), 有序集合(sorted sets) 与范围查询, bitmaps, hyperloglogs 和 地理空间 (geospatial) 索引半径查询。 Redis 内置了 复制(replication),LUA脚本(Lua scripting), LRU 驱动事件(LRU eviction),事务(transactions) 和不同级别的 磁盘持久化(persistence), 并通过 Redis哨兵(Sentinel)和自动 分区(Cluster)提供高可用性(high availability)。

Redis-Key

查看所有的key

keys *

查看key是否存在

EXISTS key

移除key

move key num

设置key的过期时间

EXPIRE key second

查看key的过期时间

ttl key

查看当前key的类型

type key

String字符串类型

设置key的值

set key value

获取key的值

get key

追加key的值
如果key不存在 就相当于 set key

APPEND key value

查看key的值的长度

STRLEN key

自增自减的功能

#自增
incr key
#自减
decr key

自增多少个 num:自增个数

incrby key num

自减多少个

decrby key num

字符串范围 range

GETRANGE key start end
#示例 截取0-3个字符串
GETRANGE key 0 3
获取全部字符串
GETRANGE key 0 -1
替换字符串
SETRANGE key offset value

设置字符串过期

setex key seconds value #(设置过期时间)
setnx key value #不存在设置(分布式锁中常常用到)
#setnx key  如果这个key存在 创建失败
#setnx key  如果不存在 创建成功

一次性设置多个值
key 存在就不创建

 mset key value [key value ...]

设置多个值 要么同时成功,要么同时失败 原子性操作

msetnx key value [key value ...]
设置对象
设置user:1对象 值为json字符串来保存一个对象

先get后set命令

getset key value

如果不存在,返回nill 设置值
如果存在值,返回值,更新值
**String类似的使用场景:value除了是我们的字符串还可以是我们的数字!
计数器
统计多单位的数量
粉丝数
对象缓存存储

list(列表)

所有的list命令都是用l开头的,Redis不区分大小命令
LPUSH 将一个值或者多个值,插入到列表头部 (左)

LPUSH key value

RPUSH 将一个值或者多个值,插入到列表位部 (右)

RPUSH key value
lpop &rpop 移除list的值
lpop key  #从最左边移除一个元素
rpop key  #从最右边移除一个元素
lindex 通过下标获取list的值
lindex key index  #通过下标获取list的值
llen 获取list的长度
llen key
LREM 移除list指定的值
LREM key count element
count:移除几个
rpoplpush 移动列表元素
EXISTS 判断列表存不存在
EXISTS key
lset指定列表的下标设置值(更新值)
如果值不存在就报错
lset key index element
往list指定的元素前面或后面插入值
LINSERT key BEFORE|AFTER pivot element

小结

他实际上是一个链表,before Node after , left,
right 都可以插入值 如果key 不存在,创建新的链表
如果key存在,新增内容

Set(集合)

set中的值是不能重读的!

添加set集合的值

sadd key member [member ...]

获取set集合的值

SMEMBERS key

获取set集合元素个数

SCARD key

移除set的元素

SREM key member [member ...]

随机获取set的元素

SRANDMEMBER key [count]

count:指定获取几个元素
随机移除一个元素

spop key

将指定的set集合的元素移到另一个set集合中

smove source destination member

查看两个set集合中的不同的元素

SDIFF key [key ...]
key在前查看谁

查看两个set集合中的交集(共同好友)

SINTER key [key ...]

查看两个set集合中的并集

SUNION key [key ...]

小结

微博,A用户将所有关注的人放在一个set集合中!将它的粉丝也放在一个集合中!
共同关注,共同爱好,二度好友,推荐好友!(六度分割理论)

Hash(哈希)

Map集合,key-map! 时候这个值是一个map集合! 本质和String类型没有太大区别,还是一个简单的 key-vlaue!

添加值

hset key field value [field value ...]
hmset key field value [field value ...]

获取值

hget key field
hmget key field [field ...]

删除值

hdel key field [field ...]

获取hash的字段长度

hlen key

判断hash指定的字段是否存在

HEXISTS key field

只获得所有field

hkeys key

只获得所有value

hvals key

自增自减

HINCRBY key field increment 

自增

HINCRBY myhash user 1 

#自减

HINCRBY myhash user -1

设置值如果不存在则可以设置 如果存在则不能设置

 hsetnx key field value

小结
hash变更的数据 user name age,尤其是是用户信息之类的,经常变动的信息! hash 更适合于对象的 存储,String更加适合字符串存储!

Zset(有序集合)

在set的基础上,增加了一个值,set k1 v1 zset k1 score1 v1

添加值

zadd key [NX|XX] [CH] [INCR] score member [score member ...]

从小到大排序

ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]

总大到小排序

zrevrangebyscore key max min [WITHSCORES] [LIMIT offset count]
ZREVRANGE key start stop [WITHSCORES]

移除zset的指定元素

zrem key member [member ...]

获取有序集合中的个数

zcard key

获取指定区间的成员数量

zcount key min max

小结
案例思路:set 排序 存储班级成绩表,工资表排序!
普通消息,1, 重要消息 2,带权重进行判断! 排行榜应用实现,取Top N 测试!

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:14:07  更:2021-09-12 13:16:27 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 12:08:28-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码