Redis_day01

Redis是一个开源的高性能键值对数据库,属于NoSQL家族,提供多种数据类型支持,如字符串、哈希、列表等。文章介绍了Redis的下载安装、基本操作,包括数据的添加、查询、删除,以及不同数据类型的特性,如字符串的数值操作和哈希、列表的操作注意事项。
摘要由CSDN通过智能技术生成

1.Redis简介

NoSQL概念:Not-Only SQL( 泛指非关系型的数据库),作为关系型数据库的补充。目的是应对基于海量用户和海量数据前提下的数据处理问题。

特征

  • 可扩容,可伸缩

  • 大数据量下高性能

  • 灵活的数据模型

  • 高可用

常见NoSQL数据库:Redis、memcache、HBase、MongoDB

1.2概念

Redis(Remote Dictionary Server)是用C语言开发的一个开源的高性能键值对数据库。

1.3特征

  • 数据间没有必然的关联关系

  • 内部采用单线程机制进行工作

  • 高性能

  • 多数据类型支持

  • 持久化支持

2.Redis下载与安装

win版[Redis下载][https://github.com/MSOpenTech/redis/tags]

[Redis安装教程][https://www.redis.com.cn/redis-installation.html]

3.Redis快速上手

信息添加、查询

#添加语法格式:set key value
set name zhangsan
#查询语法格式:get key
get name

清除信息

clear

4.Redis存储数据类型

string

hash

list

set

sorted_sort

(Redis数据类型)

String

HashMap

LinkedList

HashSet

TreeSet

Redis数据存储格式

  • redis 自身是一个 Map,其中所有的数据都是采用 key : value 的形式存储

  • 数据类型指的是存储的数据的类型,也就是 value 的类型,key 永远都是字符串数据类型

string

基本操作

单条数据

#set key value
set a 1

多条数据

#set key value key value
set a 1 b 2

获取数据

#get key
get a

删除数据

#del key
del a

获取字符个数(字符串长度)

#strlen key
strlen a

追加信息(有则追加,无则创建)

#append key value
append c 3

扩展操作

设置数值数据增减

#增
#incr key
#incrby key increment
#increbyfloat key increment

#减
#decr key
#decrby key increment

指定数据生命周期

#setex key seconds value
#psetex key milliseconds value

hash

基本操作

单条数据

#hset key field value
hset 001 g01 20

多条数据

#hset key field1 value1 field2 value2
hset 001 g01 10 g02 20

查看单条数据

#hget key field
hget 001 g01

查看多条数据

#hget key field1 field2
hget 001 g01 g02

查看全部数据

#hgetall key
hgetall 001

删除数据

#del key
del 001

查看字段(field)数量

#hlen key
hlen 001

判断字段是否存在

#hexists key field
hexists key g01  #返回1

扩展操作

查看所有的字段名

#hkeys key
hkeys 001

查看所有的字段值

#hvals key
hvals 001

list

基本操作

添加/修改数据

#lpush key value1 [value2...]
#rpush key value1 [value2...]

查看数据

#lrange key start stop
#lindex key index
#llen key

获取并移除数据

#lpop key
#rpop key

指定时间获取并移除数据

#blpop key1 [key2] timeout
#brpop key1 [key2] timeout
#brpoplpush source destination timeout

5.重难点

5.1.string作为数值操作

  • string在redis内部存储默认就是一个字符串,当遇到增减类操作incr,decr时会转成数值型进行计算。

  • redis所有的操作都是原子性的,采用单线程处理所有业务,命令是一个一个执行的,因此无需考虑并发带来的数据影响。

  • 注意:按数值进行操作的数据,如果原始数据不能转成数值,或超越了redis 数值上限范围,将报错。(9223372036854775807)(java中long型数据最大值,Long.MAX_VALUE)

5.2.数据操作不成功的反馈与数据正常操作之间的差异

string 类型数据操作的注意事项

  • 表示运行结果是否成功

  • (integer) 0 → false 失败

  • (integer) 1 → true 成功

  • 表示运行结果值

  • (integer) 3 → 3 3个

  • (integer) 1 → 1 1个

  • 数据未获取到 (nil)等同于null

  • 数据最大存储量 512MB

  • 数值计算最大范围(java中的long的最大值)(2^63-1)( 9223372036854775807)

5.3.hash 类型数据操作的注意事项

  • hash类型下的value只能存储字符串,不允许存储其他数据类型,不存在嵌套现象。如果数据未获取到,对应的值为(nil)

  • 每个 hash 可以存储 2^32 - 1 个键值对

  • hash类型十分贴近对象的数据存储形式,并且可以灵活添加删除对象属性。但hash设计初衷不是为了存储大量对象而设计的,切记不可滥用,更不可以将hash作为对象列表使用

  • hgetall 操作可以获取全部属性,如果内部field过多,遍历整体数据效率就很会低,有可能成为数据访问瓶颈

5.4.list 类型数据操作注意事项

  • list中保存的数据都是string类型的,数据总容量是有限的,最多2^{32}-1 (4294967295)个元素

  • list具有索引的概念,但是操作数据时通常以队列的形式进行入队出队操作,或以栈的形式进行入栈出栈操作

  • 获取全部数据操作结束索引设置为-1

  • list可以对数据进行分页操作,通常第一页的信息来自于list,第2页及更多的信息通过数据库的形式加载

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值