Redis入门

这篇博客介绍了Redis的基础知识,包括Redis的NoSQL背景、Redis的多种数据类型、操作命令、持久化机制(RDB和AOF)以及如何在Java中使用Jedis操作Redis。还提到了Springboot整合Redis的基本步骤。
摘要由CSDN通过智能技术生成

#Redis基础

Nosql:的发展史

Nosql是泛指非关系型sql存储数据,我们创建个.txt文件写完之后是不是需要CTL+S

去进行到存取磁盘中的过程,但是现在大部分开发工具都是自动去保存,想象一下

辛苦写的程序,突然断电导致笔记本关机,再次开机的情况下没有自动保存到电脑磁盘中

你的内心一定是崩溃的,

NOSQL的出现就是为了处理大量数据的访问,把一些常用的数据存储在电脑磁盘中,

想象一下这个读写速度是很快的,为了处理高并发而提出的观点

比如一些大型的项目为了简化数据库的压力可以把常用的数据去存储在NOSQL中

常见的NOSQL技术有:

Redis,mongoDB,Memcache

Redis,可支持的数据类型很多,能满足大部分需求,不过Redis,只能支持单线程,不过最新发布的Linux版本的Redis现在已经满足多线程了

MongoDB:插入数据速度非常快,

Memcache:只支持简单的key/value数据结构,不像Redis可以支持丰富的数据类型。

Springboot默认的缓存框架就是Memcache缓存

redis中进入服务命令

cd到redis安装目录下的bin目录执行./redis-cli方法

Redis中库的概念

库:database:用来存放数据的一个基本单位,一个库可以存放多个key(只能是Srting类型)-value,库默认有16个库,库的编号:0-15

##value类型

  String 
  List
  Set
  Zset
  Hash
  默认添加的value都是保存在磁盘中而不是内存中内存容易丢失数据比如
  记事本中写完代码没有CTL+S
  存储在磁盘中的数据理论上是永久保存的

切换库命令:select {库id} <库与库之间的关系互不影响>

–reids清除库的指令 :

flushDB {清除当前操作的库所有数据}

flushALL {清除所有库默认16个}

操作key的命令

DEL命令

语法: DEL key{key参数 ....}
作用: 删除给定的一个或者多个key。不存在的key会被忽视掉
返回值:被删除key的数量  nuber

EXISTS命令

  语法:EXISTS {key参数}
  作用: 检查制定key是否存在
  返回值: 如果存在则返回1,否则返回0

EXPIRE命令

  语法:EXPIRE Key {seconds} nuber单位秒
  作用:为制定key设置有效保存时间,当key时间过期,他会被自动删除掉前提是设置存储过得
  key值
  返回值:成功就返回1,

请添加图片描述

KEYS命令

语法:keys pattern
作用:查询所有符合给定模式patten的key
语法:
keys * 查询当前库中的所有key  跟mysql中同理
剩余语法可以参考?条件,条件遵守正则表达式
返回值:符合查询条件的列表

MOVE命令

语法: hove key db{}
作用:讲当前数据库的key移动裁剪到制定的库中
返回值:操作成功返回1,否则0

PEXPIRE命令

语法: pexpire key milliseconds nuber单位毫秒
作用:这个命令和expire命令用法一样就是参数不一样
返回值:true:1 flase:0

TTL命令

语法: ttl key 
作用:去查询这个key单位剩余时间{类型 秒}
返回值:不存在返回-2,存在但按照默认存储永久则返回-1,否则都是返回的nuber已秒为单位

PTTL命令

语法: pttl key
作用:去查询这个单位剩余时间 类型{毫秒}
返回值:不存在返回-2,存在但按照默认存储永久则返回-1,否则都是返回的nuber已毫秒为单位

RANDOMKEY命令

 语法:RANDOMKEY  (RANDOM任意的,随机的)
 作用:从当前库中返回一个随机的key
 返回值:当数据库不为空时返回key,否则返回nil(无,零)

RENAME命令

语法:RENAME key newkey (RENAME 重命名) 
作用:将key重命名newkey 
返回值:当key重命名的名字和newkey一样或者key不存在的时候,返回一个错误。
当newkey已经存在,rename命令将重命名

TYPE命令

语法:type key 
作用:根据key返回所存储的数据类型(Sting,List,Set,Zset,Hash)
返回值 none(没有)
Sting,List,Set,Zset,Hash


Sting:

请添加图片描述

Sting类型的常用命令

命令 描述
set 设置一个key/value
get 根据key获取对应的value
mset 一次设置多个key/value
mget 一次获取多个key的value
getset 获取原始的key值,同时
strlen 获得对应的key存储的value长度
append 为对应的key的value追加内容
getrange索引0开始 截取value的内容
setex 设置一个key存放的有效期单位:(秒)
psetex 设置一个key存放的有效期单位:(毫秒)
setnx 有点话就查询没有的话就添加,等于先做了查询操作又做了添加
msetnx原子操作(只要存在一个都不会去做任何操作) 可以同时设置多个key,只有一个存在都不会去保存
decr 进行数值类型的-1操作 返回值number类型
decrby 根据提供的kye去进行制定的number
incr 进行数值类型的+1操作
incrby 根据提供的key去进行指定的number
incrbyfloat 根据提供的key去进行制定的number 单位:float

请添加图片描述

List跟java中的list集合很相似都是从左往右存储
支持数据重复性 

List类型的常用命令

命令 说明 示例
lpush 将摸一个值加入到一个key列表最顶部top lpush list top
lpushx 跟lpush,但是必须要保证这个key存在 lpush list top1
rpush 讲某个值加入到一个key列表末尾 rpush list button
rpushx 桶rpush一样但是这个key必须要存在 rpushx list button-1
lpop 返回和已出列表左边的第一个元素就是第一个元素top lpop list
rpop 返回和已出列表右边{参考上图list存储结构}的第一个元素,就是最后一元素 rpop list
lrange 获取某一个下标区间内的元素 lrange list 0 -1{表示最后}
llen 获取key的个数 llen list
lset 设置某一个制定索引的值索引必须存在相当于在list数组找到已经开辟的空间update操作 lset list [索引] value
lindex 获取某一个制定索引位置的元素相当于get[索引] lindex list 0
lrem 删除重复元素 lrem list [number代表要删除的size]2 18
ltrim 保存列表中特定区间内的元素只保留[top],[button]和中间的值其他的全部删掉 ltrim list 0 8
linsert 在某一个元素之前,之后插入新元素 两个可选参数bofore(之前),after(之后) linsert list after newtop

SET类型的常用命令

请添加图片描述

Set类型可以理解为一个集合,可以放多个元素,元素无序,zset则是有序的,set里边
value不能够重复
特点:无序列表
命令 说明 示例
sadd
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值