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的那些事

MemCache、Redis、MongoDB被称为NoSQL三剑客

##NoSQL数据库(Redis)

数据存储位置 内存
数据结构 没有预定义的模式
数据操作方式 所有数据都是键值对,没有声明性查询语言
事务控制 基于乐观锁的松散事务控制
NoSQL数据库的最大优势体现为:高性能、高可用性和可伸缩性。

1)官网地址
https://redis.io
2)下载地址
https://redis.io/download
3)命令参考地址
http://redisdoc.com

## 应用场景

###1)缓存
使用Redis可以建立性能非常出色的缓存服务器,查询请求先在Redis中查找所需要的数据,如果能够查询到(命中)则直接返回,大大减轻关系型数据库的压力。
###2)数据临时存储位置
使用token(令牌)作为用户登录系统时的身份标识,这个token就可以在Redis中临时存储。
###3)分布式环境下解决Session不一致问题时的Session库
Spring提供了一种技术解决分布式环境下Session不一致问题,叫SpringSession。而Redis就可以为SpringSession提供一个数据存储空间。
###4)流式数据去重
在Redis中有一种数据类型是Set,和Java中的Set集合很像,不允许存储重复数据。借助这个特性我们可以在Redis中使用Set类型存储流式数据达到去重的目的。

## 五种常用数据类型
string 它是key对应的一个单一值 可以包含任何数据,比如jpg图片或者序列化的对象,Redis中一个字符串值的最大容量是512M
list 字符串列表,按照插入顺序排序,底层是基于链表实现,头尾效率高,中间效率低
set String类型的无序集合,基于哈希表实现的
hash 本身就是一个键值对集合。可以当做Java中的Map<String,String>
zset 和set一样,但每个元素都会关联一个double类型的分数,通过分数来为集合中的成员进行从小到大的排序实现有序不重复,分数(score)可以重复

默认有16个数据库
select + 数据库编号 切换数据库
dbsize 查看数据库长度(存储了多少个key)
keys ? 查看只有一位的key keys * 查看所有key
type key名 查看key对应的值的类型
move key名 db库名 把一组键值对移动到指定库
del key名 [可以填写多个key名] 删除key
exists key名 [可以填写多个key名] 查看key是否存在,可以查看多个,存在返回的是存在的数量,不存在返回0
randomkey 在现有的key中随机返回一个
rename key名 新key名 改变key名,新key名可以是已有的
renamenx 改变key名新key名不能是已有的
ttl key名 查看key可以存在多久,-1表示永久
expire key名 时间(秒) 设置key在多少秒后过期被删除
persist key名 移除过期时间改为永久

## sting类型操作
set key名 value值 [存活秒数] [存活毫秒数] [nx,key不存在时执行/xx,key存在时执行]
给key设置一个sting类型的值,可以创建不存在的key,[]的内容可以不要
get key名 得到string类型的key对应的值,无法操作其他类型的key
strlen key名 返回key的值的字符串长度
append key名 value值 将value值追加进key的值后,返回追加后的字符串长度
incr key名 自增1,只能对数字类型的key操作,可以创建value为1的key
decr key名 自减1,只能对数字类型的key操作,可以创建value为-1的key
incrby key名 数字 增加指定数字值,只能对数字类型的key使用,可以创建value为指定数字的key
decrby key名 数字 减少指定数字值,只能对数字类型的key使用,可以创建value为-指定数字的key
getrange key名 起始下标 结束下标 查看key中指定范围的值
setrange key名 下标位置 value值 在指定下标位置使用指定值进行替换
setex key名 秒数 value值 设置key,value存活的指定秒数 时间结束会删除整个key
setnx key名 value值 设置还未存在的key,value key不可以存在,value不影响
mset key value key value … 一次设置多个key-value,已存在的会被覆盖
mget key key key … 可以一次返回多个key对应的value值,不存在的key返回nil
msetnx key value key value … 一次设置多个key-value,只能设置不存在的,有一个已存在的key都不会成功
getset key value 更改key对应的value值,返回原来的value值

## list类型操作
lpush key value value … 从左到右向key中放入多个value,可以创建/改变key
lrange key 0 -1 查看key的value
llen key 查看key的长度即value的个数
lpop key 从左弹出第一个value 弹出指查看并删除
rpoplpush key key 从第一个key中弹出左边第一个value并从左到右写入第二个key中,第二个key可以是不存在的key
lindex key 下标 根据key的索引值查看value
linsert key before/after value1 value 在key中value1值左/右插入value
lpushx key value value … 在已存在的key中从左到右添加value
lrem key 数量 value 删除key中指定数量的value
lset key 下表 value 使用value替换key中指定下标的值
ltrim key 下标1 下标2 保留两个下标之间的数据,删除其他的

## set类型操作
sadd key value value … 向key中放入value,可以创建key,会自动去除重复的value
smembers key 查看key的值
scard key 返回key的长度
sismember key value 查看key中是否有指定的value值,有返回1,没有返回0
srem key value value … 删除key中value值,返回删除成功的数量
sinter key key … 查看多个key的交集
sinterstore key1 key key … 将多个key的交集放入key1
sdiff key key … 查看多个key的差集
sdiffstore key1 key key … 将多个key的差集放入key1
sunion key key key … 查看多个key的并集
sunionstore key1 key key … 将多个key的并集放入key1
smove key1 key value 将key1 的value值放入key
srandmember key [数量] 随机返回key中指定数量的value 不填默认1个
spop key [数量] 随机弹出key中指定数量的value 不填默认1个

##hash类型操作 一个hash有多个key,一个key有多个field场地,一个场地有一个value
hset key field value field value … 向key中的指定场地放入value,可以用来创建hash,可以一次创建多个,会替换已存在的
hgetall key 查看key中全部的场地值和value值
hget key field 查看key中指定场地对应的value值
hlen key 查看key的长度即key中的field数量
hkeys key 查看key中的所有field场地
hvals key 查看key中的所有value值
hexists key field 判断key中是否存在指定的field值,存在返回1,不存在返回0
hdel key field 删除key中指定的field值,成功返回1,不成功返回0
hincrby key field 数值 使指定field中的数值类型的value增加指定数值,做加法运算
hmget key field field … 查看指定key中多个场地对应的value值
hmset key field value field value … 和hset暂未发现有不一样的,都能操作多个,都会覆盖已存在的
hsetnx key field value 在场地不存在时添加

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-11-27 09:57:56  更:2021-11-27 09:58:40 
 
开发: 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/24 7:59:02-

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