【Redis】笔记学习中

持续更新中…

一、Redis数据库的介绍:

1.NOSQL: 泛指非关系型数据库, 对RDBMS关系型数据库的一个补充;数据的组织方式表较灵活,大部分是以【键值对】的形式来储存和管理;

例:键名/值 :redis : name “Tom” age 23 mongdb: name:“Tom”

2.redis:远程服务字典,是开源免费(开放源代码,配置文件中参数可以根据实际情况作出修改),

​ 基于内存(整个数据库全部加载到内存,数据直接存放在内存里),

​ 跨平台(可以在多个系统中使用)的非关系型数据库;

事务的执行过程可以分为三个阶段:开始事务、命令入队、执行事务。在开始事务后,所有的命令不会立即执行,而是被放入一个队列中。当执行事务时,Redis 会按照命令入队的顺序依次执行队列中的命令。如果在执行过程中出现错误,整个事务会被回滚,所有的命令都不会生效。

通过 Redis 事务,可以将多个操作作为一个原子操作进行处理,保证了数据的一致性。此外,Redis 事务还支持对命令进行监视和乐观锁机制,以实现并发控制。

需要注意的是,Redis 事务并不是严格意义上的 ACID 事务,它没有提供隔离性和持久性。因此,在使用 Redis 事务时,需要注意其适用的场景和限制。

ACID,是指数据库管理系统(DBMS)在写入或更新资料的过程中,为保证事务(transaction)是正确可靠的,所必须具备的四个特性:原子性(atomicity,或称不可分割性),一致性(consistency),隔离性(isolation,又称独立性),持久性(durability)。
为什么 Redis 需要把所有数据放到内存中?
  快速读写操作
  高吞吐量
 大规模集群
  数据持久性控制

3.redis:

        1)数据库直接在内存;
        2)支持的数据类型,以及数据类型的操作命令较多;
        3)数据的读写处理速度是较快的;
        4)持久化功能:利用生成的持久文件可以避免因异常操作引发数据丢失的问题,实现数据的恢复(备份与恢复);
        redis数据库可以对键值对key-value设置有效活跃时间,一旦过了时间,就会被系统删掉;
        支持事务的操作:事务指的是在当前数据库中一次性做的并行处理的操作,这些操作具有原子性;对数据要么执行,要么失败/取消;

二、Redis和MySQL对比:

        1)类型: mysql:关系型数据库;
               redis:非关系型数据库;
        2)存储位置:mysql:数据存储在本地磁盘;
                 redis:数据存储在内存;
        3)侧重点:mysql:偏向于存数据;
                redis:偏向于读取数据;

三、Redis数据库的增删改查的操作:

1.redis自带16个数据库:库下表:0-15,默认在0号库; ⏺切换数据库:select 库下表

🎲

2.set        键名 值    添加键值对数据       前提:该键在库中不存在
3.set        键名 新值  修改键的数据         前提:该键在库中存在
4.get        键名                          获取该键中的值
5.del        键名                          删除键值对数据

💃

四、Redis数据库中关于Key建设的操作命令:Key命令 🕋

1.exists     键名          判断键名是否存在;
2.type       键名          查看该键的数据类型;
3.keys       字符模板       查看和该字符模板相关的键名  * 任意所有;
           
             例:keys s*   显示所有是以s开头      keys *s* 包含s的键名;
4.keys        *            显示所有的键名;
5.randomkey                随机返回一个存在的键;
6.rename      旧键名 新键名  对键名进行重命名;
7.dbsize                   统计当前库中键的个数;
8.expire      键名 时间(s)  设置该键的有效活动时间;
9.ttl         键名          查看一个键的活动时间;
10.move       键名 库编号    移动键到指定库;
11.flushdb                 删除当前库中的所有键;
12.flushall                删除所有库中的所有键;
13.set 键名 值 ex 时间(s)    在设定键值对的同时进行失效时间的设定;
14.exit                    退出,断开redis数据库的连接;
15.info                    查看redis版本信息描述;

五、Redis数据类型以及相关的命令操作(五大数据类型) 📪

1.字符串类型 ⛵️ string 是redis数据库基本的数据类型 📶
        1)mset     键名1 值1 键名2 值2     批量向库中插入多个键值对数据;
        2)mget     键名1 键名2            获取多个键的值;
        3)getset   键名 新值              显示键中原始的值并把新值赋值给键;
        4)setnx    键名 值                添加新的键值对,如果键存在,什么都不会做;
        5)msetnx   键名1 值1 键名2 值2     添加多个键值对,如果键存在,什么都不会做;
        6)setex    键名 时间(s) 新值       修改键的值,并关联有效活动时间;
        7)incr     键名                   对键中的值进行加1的操作;
        8)incrby   键值 数值               指定数值的增加操作;
        9)decr     键名                   对键中的值进行减1的操作;
       10)decrby   键名 数值               指定数值的减法操作;
       11)append   键名 新值               将新的值拼接在原始键中值的后面;
       12)substr   键名 开始位置的下标 结束位置的下标      截取字符串的操作
       13)getrange 键名 开始位置的下标 结束位置的下标      截取字符串的操作
       14)setrange 键名 开始位置的下标 新值   从指定位置拿上新的值替换键中的旧值,得到一个新的字符串;
       15)strlen   键名                   统计该键中的存储的字符串长度(字符总个数)
2.列表/链表类型 list 用来存储多个字符串类型的值,键:值;1—>多 🏮
        1)lpush    键名 值1 值2 值3        从列表的**头部**插入数据             
        2)rpush    键名 值1 值2 值3        从列表的**尾部**插入数据
        3)lrange   键名 开始下标 结束下标    查看列表范围内的数据信息
        4)llen     键名                   统计列表键的长度(存储的值的总个数)
        5)lindex   键名 下标               查看下标位置上的值
        6)lset     键名 下标 新值           修改列表键中对应位置的值
        7)lrem     键名 数量 值             从列表中删除指定数量的值
        8)lpop     键名                    显示并删除列表中的首个值
        9)rpop     键名                    显示并删除列表中的尾部值
       10)linsert  键名 before 值 新值      在指定元素值的前面插入新的数据值
       11)linsert  键名 after  值 新值      在指定元素值的后面插入新的数据值
       12)ltrim    键名 开始位置的下标 结束位置的下标    对列表中的数据进行截取(键中只保留截取后剩下的数据)
3.set集合:存储字符串类型的数据:唯一,无序 🙈
        1)sadd     键名 值1 值2 值3         创建/插入集合中的值
        2)smembers 键名                    查看键中的所有的值
        3)srem     键名 值                 删除键中的数据
        4)spop     键名                    返回并删除键中的一个值
        5)smove    键名1 键名2 元素值       将键名1中的值移动到键名2
        6)scard    键名 值                 统计集合键中值的总个数
        7)sismember 键名 值                检测到该值中是否在集合键中
        8)sinter   键名1 键名2             求**交集**:把共有的数据显示出来
        9)sinterstore 新的键名 键名1 键名2  求**交集**并保存在新的键中
       10)sunion   键名1 键名2             求**并集**:集合键之间做融合
       11)sunionstore 新的键名 键名1 键名2  求**并集**并保存在新的键
       12)sdiff    键名1 键名2             求**差集**:以集合1减去集合2中共有的数据,把剩下的数据给显示出来;
       13)sdiffstore  新的键名 键名1 键名2  求**差集**并保存在新的键
       14)srandmember 键名                随机返回集合键中的一个值
4.哈希集合#️⃣:存储的是【键值对】数据:Key-Value集合 🎮
        1)hset     键名 字段名1 值1        生成hash集合的键并接受字段值
        2)hmset    键名 字段名1 值1 字段名2 值2   一次性插入多组键值对数据(字段值)
        3)hget     键名 字段名             获取该键中对应字段的值
        4)hmget    键名 字段1 字段2 字段3   获取多个字段的值
        5)hgetall  键名                   获取该键中所有的键值对数据
        6)hincrby  键名 字段名 数值         将键中对应的值进行增加数值的操作
        7)hexists  键名 字段名             判断该字段是否在集合中存在
        8)hdel     键名  字段名            删除集合中的字段
        9)hlen     键名                   统计该键中的键值对总个数
       10)hkeys    键名                   获取该键中所有的字段名
       11)hvals    键名                   获取该键中所有的值
5.有序集合: zset: 用来存储字符串类型的数据的集合,通过每一个值关联一个分数,然后利用分数达到排序的效果(从小到大) 💛 😋 💴
        1)zadd     键名 分数1 值1 分数2 值2 生成有序集合以及对应的数据
        2)zrange   键名 开始下标 结束下表    查看集合中的数据
        3)zcard    键名                   统计集合中的总个数
        4)zcount   键名 最低分 最高分       根据分数区间统计值的总个数
        5)zincrby  键名 增加的分数 值       对该值的分数进行增加
        6)zrank    键名 值                返回该值对应的位置下标(把最小的值看成是第一个下标元素)
        7)zrevrank 键名 值                返回该值对应的位置下标(把最大的值看成是第一个下标元素)
        8)zscore   键名 值                查看该值对应的分数
        9)zrevrange 键名 开始下标 结束下标   降序查看
       10)zscan    键名 游标0             查看键中的值和对应的分数
       11)zrem     键名 值1 值2           删除键中的值
       12)zremrangebyscore 键名 最低分 最高分   删除分数区间内的值

六、Redis数据库的事务操作 🏕

1.事务:指的是一次可以执行多个操作命令–>把对应的操作命令放在事务中,一旦执行事务,就会把事务中所有的操作命令全部执行. 🌍

对比:在之前的操作中,每次执行操作命令时,都是一个一个按顺序执行的,有了事务,可以同步执行操作. 💫 🕵

七、Redis数据库的备份与恢复

1.备份: Save 🔙

备份完成后,会在redis的安装目录中生成一个dump.rdb文件,数据库的备份文件;

2.Redis的备份路径 ↩️

有时候备份完成后,找不到该文件或不清楚Redis的安装目录,就可以借助命令: config get dir,显示Redis的路径;

3.恢复 🛠 🤒

只需要把备份好的dump.rdb文件,放入到redis安装目录中重启redis数据库即可;

               更新中。。。。。。。。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咕咕在测试

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值