Flask 修炼day06-Redis&Git!

Posted QYFabc

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Flask 修炼day06-Redis&Git!相关的知识,希望对你有一定的参考价值。


当前浏览器不支持播放音乐或语音,请在微信或其他浏览器中播放 Flask 修炼day06-Redis&Git! Flask 修炼day06-Redis&Git!


本文阅读时长大约为 10 分钟



内容概述:

Redis、 Git


Redis

NoSQL 介绍

一类新出现的数据库(not only sql)

  • 泛指非关系型的数据库

  • 不支持 SQL 语法

  • 存储结构跟传统关系型数据库中的那种关系表完全不同, nosql 中存储的数据都是 KV 形式。

  • NoSQL 的世界中没有一种通用的语言,每种 nosql 数据库都有自己的 api 和语法,以及擅长的业务场景

  • NoSQL 中的产品种类相当多,例如:Mongoddb、Redis、Hbase hadoop、Cassandra hadoop



Flask 修炼day06-Redis&Git!



NoSQL 和 SQL 数据库的比较

使用场景不同:sql 数据库适合用于关系特别复杂的数据查询场景,nosql 反之;

“事务” 特性的支持:sql 对事务的支持非常完善,而 nosql 基本不支持事务;

两者在不断地取长补短,呈现融合趋势。


Flask 修炼day06-Redis&Git!



Redis 特性

Redis 与其他 key - value 缓存产品有以下三个特点:

Redis 支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用;

Redis 不仅仅支持简单的 key - value 类型的数据,同时还提供 String、hash、list、set、zset 等数据结构的存储;

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




Flask 修炼day06-Redis&Git!



Redis 优势

  • 性能极高 – Redis能读的速度是110000次/s,写的速度是81000次/s 。

  • 丰富的数据类型 – Redis支持二进制案例的 Strings, Lists, Hashes, Sets 及 Ordered Sets 数据类型操作。

  • 原子 – Redis的所有操作都是原子性的,同时Redis还支持对几个操作合并后的原子性执行。

  • 丰富的特性 – Redis还支持 publish/subscribe, 通知, key 过期等等特性。


Flask 修炼day06-Redis&Git!



数据操作

数据类型:

String(字符串)、hash(哈希)、list(列表)、set(集合)、zset(有序集合)

String

如果设置的键不存在则为添加,如果设置的键已经存在则修改

get 获取值时,键不存在不会报错

设置值:set  键名  值  EX  过期时间(单位:秒)

设置键值及过期时间,以秒为单位:setex key seconds value

获取值:get 键名

设置多个值:mset  键1  值1   键2  值2 。。。

获取多个值: mget  键1    键2  。。。

追加:append   键   值


Flask 修炼day06-Redis&Git!



键命令

查看键: keys  正则            keys *   (查看所有键)

判断键是否存在: exists  key

查看键的类型: type  key

删除对应的值: del  key

设置 key 过期的时间:  expire   key   时间


Flask 修炼day06-Redis&Git!



hash

hash⽤于存储对象,对象的结构为属性、值

值的类型为string

设置:hset  key(键名) field(字段)  value(值)

获取指定键所有的属性: hkeys  key

获取一个属性的值:hget key field

获取多个属性的值:hmget key field1 field2 …

获取所有属性的值:  hvals  key

删除:删除整个hash键及值,使⽤del命令;删除属性,属性对应的值会被⼀起删除

hdel key field1 field2 …


Flask 修炼day06-Redis&Git!



list

列表的元素类型为string

按照插⼊顺序排序

增加:

左侧添加: lpush  key  value1  value2

右侧添加: rpush key  value1  value2

在指定位置前或后插入元素:linsert key before或after 现有元素 新元素

获取: lrange  key start  stop

修改: lset  key  index  value

删除:  lrem  key  count  value(指定的值)

count 是指定的数字:小于 0 ,从尾往头删;大于 0 ,从头到尾;等于 0 ,清空


Flask 修炼day06-Redis&Git!



set
  • ⽆序集合

  • 元素为string类型

  • 元素具有唯⼀性,不重复

  • 说明:对于集合没有修改操作

添加元素: sadd  key  member1  member2 …

获取: smembers key

删除: srem key


Flask 修炼day06-Redis&Git!



zset
  • sorted set,有序集合

  • 元素为string类型

  • 元素具有唯⼀性,不重复

  • 每个元素都会关联⼀个double类型的score,表示权重,通过权重将元素从⼩到⼤排序

  • 说明:没有修改操作

添加:zadd key score1 member1 score2 member2 …

获取:zrange key start stop

  • 返回指定范围内的元素

  • start、stop为元素的下标索引

  • 索引从左侧开始,第⼀个元素为0

  • 索引可以是负数,表示从尾部开始计数,如-1表示最后⼀个元素

删除指定元素: zrem key member1  member2 …

删除权重在指定范围的元素:zremrangebyscore key min max


Flask 修炼day06-Redis&Git!



与 python 交互
from redis import StrictRedis

def demo():
   # 创建对象,与 redis 服务器建立连接
   sr = StrictRedis(host='127.0.0.1')

   try:
       result = sr.set('name', 'xiaohei')
       print(result)
   except Exception as e:
       print(e)

if __name__ == '__main__':
   demo()


Flask 修炼day06-Redis&Git!



主从服务器

根据教程搭建即可

(error) NOAUTH Authentication required.

这是认证,输入密码即可

使用命令: auth "yourpassword"


Flask 修炼day06-Redis&Git!



搭建集群

在 Ubuntu 中搭建:

cd ~/Desktop/Flask
makdir conf
touch 7000.conf /  7001.conf  /  7002.conf
gedit 7000.conf /  7001.conf  /  7002.conf

输入内容:
port 7000
bind 192.168.195.133
daemonize yes
pidfile 7000.pid
cluster-enabled yes
cluster-config-file 7000_node.conf
cluster-node-timeout 15000
appendonly yes

对对应的文件修改端口,  这几个是主服务器

启动服务器:
redis-server 7000.conf
redis-server 7001.conf
redis-server 7002.conf

配置从服务器:
touch 7003.conf /  7004.conf  /  7005.conf
gedit 7003.conf /  7004.conf  /  7005.conf

输入内容:
port 7003
bind 192.168.195.133
daemonize yes
pidfile 7003.pid
cluster-enabled yes
cluster-config-file 7003_node.conf
cluster-node-timeout 15000
appendonly yes

对对应的文件修改端口,  这几个是从服务器

启动服务器:
redis-server 7003.conf
redis-server 7004.conf
redis-server 7005.conf


创建集群:

将 redis-trib.rb 命令加到命令文件夹中
sudo cp /usr/share/doc/redis-tools/examples/redis-trib.rb /usr/local/bin/

安装 ruby
sudo apt-get install ruby

-- 先查看⾃⼰的 gem 源是什么地址
gem source -l      -- 如果是https://rubygems.org/ 就需要更换
-- 更换指令为
gem sources --add https://gems.ruby-china.com/ --remove https://rubygems.org/
-- 通过 gem 安装 redis 的相关依赖
sudo gem install redis
-- 然后执⾏指令
redis-trib.rb create --replicas 1 192.168.195.133:7000 192.168.195.133:7001  192.168.195.133:7002  192.168.195.133:7003 192.168.195.133:7004  192.168.195.133:7005  

输入 yes, 提示完成,搭建集群成功。

加参数 c 表示连接到集群

redis-cli -h 192.168.195.133 -c -p 7000

与 python 交互

下载库 :

pip install redis-py-cluster

# 导入 redis 集群库
from rediscluster import StrictRedisCluster


def demo():
   # 存入集群信息
   startup_nodes = [
       {'host': '192.168.195.133', 'port': 7000},
       {'host': '192.168.195.133', 'port': 7001},
       {'host': '192.168.195.133', 'port': 7002}
   ]

   # 创建对象,与 redis 集群进行连接
   src = StrictRedisCluster(startup_nodes=startup_nodes, decode_responses=True)

   try:
       result = src.set('name', 'goudan')  # 集群会随机写入值
       print(result)
       print(src.get('name'))
   except Exception as e:
       print(e)


if __name__ == '__main__':
   demo()





Flask 修炼day06-Redis&Git!

Git

Git 学习笔记


Flask 修炼day06-Redis&Git!



Flask 修炼day06-Redis&Git!



Flask 修炼day06-Redis&Git!


- End -


                    





以上是关于Flask 修炼day06-Redis&Git!的主要内容,如果未能解决你的问题,请参考以下文章

python修炼之路-day2

python修炼之路-day5

每日一题LeedCode day01 存在重复元素小夜斗力扣修炼之路

每日一题LeedCode day01 存在重复元素小夜斗力扣修炼之路

每日一题LeedCode day01 存在重复元素小夜斗力扣修炼之路

Linux修炼6.gcc/g++及Makefile工具篇