目录
目录
一、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是单线程。
②主从复制:主节点宕机,从节点作为主节点备份可以随时顶上继续服务。

redis2.8后,引入了哨兵概念,实现了自动化故障恢复。
Redis Cluster 采用无中心结构,每个节点都可以保存数据和整个集群状态,每个节点都和其他所有节点连接。Cluster 一般由多个节点组成,节点数量至少为 6 个才能保证组成完整高可用的集群,其中三个为主节点,三个为从节点。三个主节点会分配槽,处理客户端的命令请求,而从节点可用在主节点故障后,顶替主节点。
3、Redis的应用场景
①缓存热数据②计数器③队列④最新列表⑤排行榜
二、redis的安装
使用的是Ubuntu20版本!!
①下载源代码指定版本:
②解压:
③进入解压的目录:
④编译安装:
⑤启动服务器:
如果卡在这里不动的话,CTRL+C,然后输入 redis-server --daemonize yes 再去执行redis-cli
可以去配置文件直接改成yes,不然每次启动的时候都要输入这一行,但是我这里改了配置文件还是没办法直接redis-cli启动~不知道为啥!!
⑥检查(ping):
三、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查看):
②栈操作,先进后出(lpush进,lrange查看):
③推出一个元素(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依赖包
①安装


②启动


新建-python文件
2、python基本操作redis
①连接数据库(后面的操作就r.什么就好了):
②对字符串string增删改查:


②对列表list增删改查:
③对字典hash增删改查:
r.hset("myhasj","name","aure")
print(r.hget("myhash","name"))
④set集合的增删改查:
r.srem(myset,values)
//删除
⑤对zset的增删改查:
注意:crud中是先写权重的,再这里是后写权重的!!
Redis是一个内存数据结构服务器,支持多种数据结构如字符串、列表、哈希等。其特点是支持数据持久化、主从复制和哨兵自动化故障恢复。文章详细介绍了Redis的安装步骤、CRUD操作以及如何用Python进行交互。

6554

被折叠的 条评论
为什么被折叠?



