学习笔记整理-nosql复习3-redis数据库

Redis是一个内存数据结构服务器,支持多种数据结构如字符串、列表、哈希等。其特点是支持数据持久化、主从复制和哨兵自动化故障恢复。文章详细介绍了Redis的安装步骤、CRUD操作以及如何用Python进行交互。

目录

一、redis概述

1、redis特点

2、系统架构

3、Redis的应用场景

二、redis的安装

 三、redis的crud操作

1、基本操作

2、String字符串基本操作

3、list列表基本操作

4、hash字典基本操作

5、对set集合基本操作

6、对zset有序集合基本操作

四、python操作redis

目录

一、redis概述

1、redis特点

2、系统架构

3、Redis的应用场景

二、redis的安装

 三、redis的crud操作

1、基本操作

2、String字符串基本操作

3、list列表基本操作

4、hash字典基本操作

5、对set集合基本操作

6、对zset有序集合基本操作

四、python操作redis

1、安装redis依赖包

2、python基本操作redis

 


 

一、redis概述

        redis是一个开源使用ansi c语言编写,遵守bsd协议、支持网络、基于内存可持久化的日志型,key-value数据库,并提供多种语言的api。

        通常称为数据结构服务器,因为其value可以是字符串、哈希、列表、集合、有序集合。

1、redis特点

①redis支持数据持久化,可以将内存中的数据保存在磁盘,重启的时候再次加载使用。其持久化策略有两种,一是rdb(指定时间间隔将内存中数据集快照写入磁盘,默认文件dump.rdb),二是aof(全量备份耗时,aof更高效,redis将每个收到的写命令都通过write函数追加到文件中,也就是日志文件)

②redis不仅支持简单的key-value类型数据,还提供了list、set、hash等数据结构的存储

③redis支持数据的备份,即master-slave模式数据备份

2、系统架构

①单机模式:部署简单,成本低,无备用节点,高性能,不需要同步数据,数据天然一致性。
缺点:可靠性不是很好保证,有宕机的风险,单机高性能受限于cpu处理能力,redis是单线程

②主从复制:主节点宕机,从节点作为主节点备份可以随时顶上继续服务。

e76112b427b4478f8e5e1670dc9c5f24.png

redis2.8后,引入了哨兵概念,实现了自动化故障恢复。
Redis Cluster 采用无中心结构,每个节点都可以保存数据整个集群状态,每个节点都和其他所有节点连接。Cluster 一般由多个节点组成,节点数量至少为 6 个才能保证组成完整高可用的集群,其中三个为主节点,三个为从节点。三个主节点会分配槽,处理客户端的命令请求,而从节点可用在主节点故障后,顶替主节点。

3、Redis的应用场景

①缓存热数据②计数器③队列④最新列表⑤排行榜

二、redis的安装

使用的是Ubuntu20版本!!

①下载源代码指定版本:
d6483ab71b7a4a0e969b8db728cdb01d.png

②解压:
00eeef5fb6b642f0a4412cf53b93f889.png

 ③进入解压的目录:
ed23f472bf2f4aa58f90806f5d0ada77.png

 ④编译安装:
28ef956aa82942f08d0f2f7aa92e8625.png

 ⑤启动服务器:
2b328baa64f045e59f0702624d1c5ba3.png

如果卡在这里不动的话,CTRL+C,然后输入 redis-server --daemonize yes 再去执行redis-cli

可以去配置文件直接改成yes,不然每次启动的时候都要输入这一行,但是我这里改了配置文件还是没办法直接redis-cli启动~不知道为啥!!

⑥检查(ping):
2a11c499cde2435283db64d742d81dcd.png

 三、redis的crud操作

1、基本操作

flushall清空缓存数据库所有
flushdb清除当前数据库
keys *列出所有keys
type key判断key的数据类型
⑤对key设置过期日期,到时间就会自动删除:set key value EX 5(设置5s)
⑥计数incr,如果value是一个整数,可以对其原则性的自增操作:
incrby key 10(10为步长,自增10)
decrby key 10(10为步长,自减10)

2、String字符串基本操作

①增:

set name "aure_xl"

②查:

get name

③改:

set name "right_l"
//key是唯一的,再次set会覆盖原先的value

④删:

del name

⑤查询是否存在(1是存在,其他类型也可以查看):

exists key

⑥使用mset/mget批量操作:

mset key1 value1 key2 value2
mget key1 key2

3、list列表基本操作

①队列操作,先进先出(rpush进,lrange查看):
5669d81e3491416f90300f76952b635d.png

 ②栈操作,先进后出(lpush进,lrange查看):
7602d0e08da2484d8c68a718a586581b.png

 ③推出一个元素(LPOP/RPOP)

lpop mylist
rpop mylist

④移除指定的值lrem List [指定的个数] [具体的值]

lrem mylist 1 one

⑤查看长度(llen):

Llen mylist

⑥修改某一下标的值lset List [下标] [更新的值]:

lset mylist 0 one

4、hash字典基本操作

①增:

hset myhash name "aure_xl" no 2333
//添加了两个键值对,分别是名字跟id,存储在叫myhash的字典中

②查全部:

hgetall myhash

③查看其中一个键值对:

hget myhash name

④修改字典(在里面添加一个键值对):

hset myhash sex "nv"
//直接按照字典名加就好了,因为字典名是唯一的,会自动在这个字典里加上这一对键值对

⑤删除一对键值对 :

hdel myhash sex

⑥查看字典中有多少键值对:

hlen myhash

5、对set集合基本操作

        set集合元素是无序的,唯一的。

①增:

sadd myset 1 2 3 4 5 6

②查:

smembers myset

③任意删除一个:

spop myset

④指定删除:

srem myset 1
srem myset 2 3 4 //也可以多个

⑤查看个数:

scard myset

⑥还可以做并集交集差集:

sdiff key1 key2//差集
sinter key1 key2//交集
sunion key1 key2//并集

⑦判断是否有集合成员:

sismember mysert 4

6、对zset有序集合基本操作

        zset内部成员具有唯一性与成员都赋予分数作为排序的权重

①增:

zadd myzset 1 one 2 two

②升序/降序:

zrange myzset 0 -1//升序
zrange myzset 0 -1 withscores//升序并且会显示相应的权重
zrevrange myzset 0 -1//降序
zrange myzset 0 -1 withscores//降并且会显示相应的权重

③选取范围:

zrangebyscore myset 0 1 withsocres

④删除某个成员:

zrem myset aure

⑤获取成员数量:

zcard myset

⑥获取分数:

zscore myset

⑦获取排名:

zrank myset

四、python操作redis

1、安装redis依赖包

①安装

7ea6f032939145b5a427a57b5634bfb9.png

f74ee6b8cf494397b09f15a0c3012092.png

9b4e20ceb933476c9f6ca6f3cba72539.png ②启动

e4e2e40f44d04b0b9fc39f48cded62df.png

d59a23d0ddf445b2a42134469f3e6716.png

 新建-python文件

2、python基本操作redis

 ①连接数据库(后面的操作就r.什么就好了):
d54def8ed4684293b19351e25ddb65b9.png

 ②对字符串string增删改查:
6b561589264643b7bed37755aa3d4271.png

df3689c5782d456cb9b24cd61f5fbe1d.png

024de898b487415fbd702c6aa58d3eb5.png

 ②对列表list增删改查:
0301d6dd8d6848feb5c41e685d1db3c7.png

 ③对字典hash增删改查:

r.hset("myhasj","name","aure")
print(r.hget("myhash","name"))

④set集合的增删改查:
3d68b25baa6342d7bd5e8a145c4153fc.png

r.srem(myset,values)
//删除

⑤对zset的增删改查:
1a5e5bddcf684206963711080e6bf0a1.png

 注意:crud中是先写权重的,再这里是后写权重的!!

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Aure_xl

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

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

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

打赏作者

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

抵扣说明:

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

余额充值