Redis

Redis

内存型数据库 效率很高
应用:缓存 队列系统 ,session共享、购物车。。。。
非关系型数据库典范 不需要SQL语句

1.REDIS介绍

高性能Key-Value数据库

NoSql

  • 泛指非关系型数据库
  • 不支持SQL语法
  • 储存形式K-V
  • 无通用语言,每种NoSql有自己api语法
  • 有:Mongodb、 Redis 、Hbase hadoop、Cassandra hadoop

需自学hadoop mongodb

做人工智能肯定是非关系型数据库

两种数据库比较

sql数据库适合用于关系复杂的数据查询场景 nosql适合关系简单
Nosql基本不支持事务

Sql数据库基本是抽象模拟客观世界!
NoSql是以数学角度出发

Redis特性:支持数据持久化,可以将内存中数据保存在磁盘中,重启时候再次加载进行使用;
不仅仅支持k-v形式,还支持list set zset hash等;
支持数据的备份

2.安装

brew install redis

3.配置

bind 绑定地址
port 端口
logfile 日志文件地址
databases 16 16个数据库
dbfilename 备份文件名
slaveof 去当从数据库 写上主数据库的ip 端口
daemonize yes:是否以守护进程运⾏
如果以守护进程运⾏,则不会在命令⾏阻塞,设置为yes表示守护进程,设置为no表示⾮守护进程,推荐yes

4.命令

服务端:
redis-server --help
redis-server
ps aux |grep redis

客户端
redis-cli --help
-h 指定ip

5.数据操作

数据结构、

K-V形式存储,键不能重复
值可以是string hash(存对象) list set zset

字符串:二进制 最大512m

flushall清空数据库
设置键值 set key value EX过期时间
setex key value 过期时间
获得键值 get key
修改值 set key value
设置多个值 mset key1 value1 key2 value2…
获取多个值 MGET key1 key2…
追加值 append key 追加的值 在字符串上追加

keys *所有key
keys a*所有a开头key的
同理keys 后面参数支持正则表达式
exists key 判断key是否存在 在就返回1 不再返回0
type key 键对应类型
del key1 key2 删除key和value
expire key xx 设置key指定时间过期

查看有效时间 ttl

redis.cn查文档

redis下如何存放hash

hash用于存放对象,一个key对象有多个属性、值,值的类型是string

设置: hset
获得键的一个属性: hget
获得键的多个属性:hmget
设置对象的多个属性 hmset
获取制定键所有属性: hkeys key
或者所有的值:hvals key
删除 hdel
设置过期时间 expire

list列表

value string 按顺序插

增:

lpush 左增 rpush右增
linsert key befor/after 中间插入

查:

同python一样,有其索引
查key的value列表内容:lrang key start end
取所有事 lrang key 0 -1

删除

lrem key count count大于0从左往右移出,小于0从右往左移出 0移出所有

改 lset

set 无序集合 没下标 没顺序

集合很容易的理解没有修改
添加:sadd key mmber1 member2
取: smember
删除值 srem

zset 有序集合 加了权重

每个元素都会关联一个double类型score 表示权重,,通过权重将元素从小到大排序

6.redis和python交互

7.搭建主从

和mysql一样,一个master拥有多个slave,一个slave又可以多个slave,一个主10个从
可以实现读写分离,数据备份,负载均衡

配置:
查看ip
修改配置redis.conf
从:复制主的配置文件修改为slave.conf slaveof表示主服务器是谁写上祝服务器的ip端口
port

查看主从服务,redis-cli 祝服务器ip info Replication

8.搭建集群

集群是一组相互独立,通过高速网络互联的计算机,构成了一个组,并以单一系统的模式加以管理。一个客户与集群相互作用时,集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放

当请求来首先由负载均衡服务器处理,把请求转发搭配另外的一台服务器上

redis集群:软件层面,硬件层面
软件就是一台电脑多个redis,硬件是多台服务器,每个服务器上一个或多个redis

集群至少三个主三个从

1.创建6个一样配置的redis
2.创建集群:
安装ruby环境,借助redis-trib.rb创建集群

写的时候是不能指定在哪个服务器,哪个巢写数据的,CRC16,二进制每16位提取最小幂指次数;
集群里没有谁是主谁是从,所有节点平等,,每个节点都保存各⾃的数据和整个集 群的状态。每个节点都和其他所有节点连接,⽽且这些连接保持活跃,这样就保 证了我们只需要连接集群中的任意⼀个节点,就可以获取到其他节点的数据

9.python集群交互

安装redis-py-cluster 包

statrup_nodes=[
	{'host':'172.16.28.143','port':7000},
	{主},
	{主}
]
src = StrictRedisCluster(startup_nodes=列表startup_nodes)

b:字节

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值