做国外订单用哪个网站,济宁梵盛科技网站建设,合肥网站关键词优化,网页升级紧急通知狼急通知Redis 是一个高性能的key-value数据库。本文会让你知道#xff1a;什么是 nosql、Redis 的特点、如何修改常用Redis配置、写出Redis中string类型数据的增删改查操作命令、写出Redis中hash类型数据的增删改查相关命令、说出Redis中 list 保存的数据类型、使用StrictRedis对象对… 
Redis 是一个高性能的key-value数据库。本文会让你知道什么是 nosql、Redis 的特点、如何修改常用Redis配置、写出Redis中string类型数据的增删改查操作命令、写出Redis中hash类型数据的增删改查相关命令、说出Redis中 list 保存的数据类型、使用StrictRedis对象对string类型数据进行增删改查、参考课件步骤搭建 Redis 集群 
全套Redis笔记地址 请移步这里 共 1 章19 子模块 学习目标 
能够写出Redis中string类型数据的增删改查操作命令能够写出Redis中hash类型数据的增删改查相关命令 
重要文档 
Redis 参考命令Redis 官方文档 
数据结构 
redis是key-value的数据结构每条数据都是⼀个键值对键的类型是字符串注意键不能重复 值的类型分为五种 字符串string哈希hash列表list集合set有序集合zset  
数据操作行为 
保存修改删除 
点击中⽂官⽹查看命令⽂档http://redis.cn/commands.html 
学习目标 
能够说出Redis中 list 保存的数据类型 
list类型 
列表的元素类型为string按照插⼊顺序排序 
增加 
在左侧插⼊数据 lpush key value1 value2 … 例1从键为a1的列表左侧加⼊数据a 、 b 、c lpush a1 a b c 在右侧插⼊数据 rpush key value1 value2 … 例2从键为a1的列表右侧加⼊数据0、1 rpush a1 0 1 在指定元素的前或后插⼊新元素 linsert key before或after 现有元素 新元素 例3在键为a1的列表中元素b前加⼊3 linsert a1 before b 3 返回列表⾥指定范围内的元素 start、stop为元素的下标索引索引从左侧开始第⼀个元素为0索引可以是负数表示从尾部开始计数如-1表示最后⼀个元素  lrange key start stop 例4键为a1的列表所有元素 lrange a1 0 -1 设置指定索引位置的元素值 
索引从左侧开始第⼀个元素为0索引可以是负数表示尾部开始计数如-1表示最后⼀个元素 lset key index value 例5修改键为a1的列表中下标为1的元素值为z lset a 1 z 删除 删除指定元素 将列表中前count次出现的值为value的元素移除count  0: 从头往尾移除count  0: 从尾往头移除count  0: 移除所有  lrem key count value 例6.1向列表a2中加⼊元素a、b、a、b、a、b lpush a2 a b a b a b 例6.2从a2列表右侧开始删除2个b lrem a2 -2 b 例6.3查看列表a2的所有元素 lrange a2 0 -1 set类型 
⽆序集合元素为string类型元素具有唯⼀性不重复说明对于集合没有修改操作 
增加 
添加元素 sadd key member1 member2 … 例1向键a3的集合中添加元素zhangsan、lisi、wangwu sadd a3 zhangsan sili wangwu 返回所有的元素 smembers key 例2键a3的集合中所有元素 smembers a3 删除 
删除指定元素 srem key 例3删除键a3的集合中元素wangwu srem a3 wangwu zset类型 
sorted set有序集合元素为string类型元素具有唯⼀性不重复每个元素都会关联⼀个double类型的score表示权重通过权重将元素从⼩到⼤排序说明没有修改操作 
增加 
添加 zadd key score1 member1 score2 member2 … 例1向键a4的集合中添加元素lisi、wangwu、zhaoliu、zhangsan权重分别为4、5、6、3 zadd a4 4 lisi 5 wangwu 6 zhaoliu 3 zhangsan 返回指定范围内的元素start、stop为元素的下标索引索引从左侧开始第⼀个元素为0索引可以是负数表示从尾部开始计数如-1表示最后⼀个元素 zrange key start stop 例2键a4的集合中所有元素 zrange a4 0 -1 返回score值在min和max之间的成员 zrangebyscore key min max 例3键a4的集合中权限值在5和6之间的成员 zrangebyscore a4 5 6 返回成员member的score值 zscore key member 例4键a4的集合中元素zhangsan的权重 zscore a4 zhangsan 删除 
删除指定元素 zrem key member1 member2 … 例5删除集合a4中元素zhangsan zrem a4 zhangsan 删除权重在指定范围的元素 zremrangebyscore key min max 例6删除集合a4中权限在5、6之间的元素 zremrangebyscore a4 5 6 安装包 
安装Redis的有3种方式https://github.com/andymccurdy/redis-py 
第一种进⼊虚拟环境联⽹安装包redis pip install redis 第二种进⼊虚拟环境联⽹安装包redis easy_install redis 第三种到中⽂官⽹-客户端下载redis包的源码使⽤源码安装 一步步执行 wget https://github.com/andymccurdy/redis-py/archive/master.zipunzip master.zipcd redis-py-mastersudo python setup.py install 调⽤模块 
引⼊模块 from redis import StrictRedis 这个模块中提供了StrictRedis对象⽤于连接redis服务器并按照不同类型提供 了不同⽅法进⾏交互操作 
StrictRedis对象⽅法 
通过init创建对象指定参数host、port与指定的服务器和端⼝连接host默认为localhostport默认为6379db默认为0 
sr  StrictRedis(hostlocalhost, port6379, db0)简写
srStrictRedis()根据不同的类型拥有不同的实例⽅法可以调⽤与前⾯学的redis命令对应⽅法需要的参数与命令的参数⼀致 
string 
setsetexmsetappendgetmgetkey 
keys 
existstypedeleteexpiregetrangettl 
hash 
hsethmsethkeyshgethmgethvalshdel 
list 
lpushrpushlinsertlrangelsetlrem 
set 
saddsmemberssrem 
zset 
zaddzrangezrangebyscorezscorezremzremrangebyscore 
学习目标 
能够使用StrictRedis对象对string类型数据进行增删改查 
准备 
在桌面上创建redis目录使用pycharm打开 redis目录创建redis_string.py文件 
from redis import *
if __name____main__:try:#创建StrictRedis对象与redis服务器建⽴连接srStrictRedis()except Exception as e:print(e)string-增加 
⽅法set添加键、值如果添加成功则返回True如果添加失败则返回False编写代码如下 
from redis import *
if __name____main__:try:#创建StrictRedis对象与redis服务器建⽴连接srStrictRedis()#添加键name值为itheimaresultsr.set(name,itheima)#输出响应结果如果添加成功则返回True否则返回Falseprint(result)except Exception as e:print(e)string- 
⽅法get添加键对应的值如果键存在则返回对应的值如果键不存在则返回None编写代码如下 
from redis import *
if __name____main__:try:#创建StrictRedis对象与redis服务器建⽴连接srStrictRedis()#键name的值result  sr.get(name)#输出键的值如果键不存在则返回Noneprint(result)except Exception as e:print(e)string-修改 
⽅法set如果键已经存在则进⾏修改如果键不存在则进⾏添加编写代码如下 
from redis import *
if __name____main__:try:#创建StrictRedis对象与redis服务器建⽴连接srStrictRedis()#设置键name的值如果键已经存在则进⾏修改如果键不存在则进⾏添加result  sr.set(name,itcast)#输出响应结果如果操作成功则返回True否则返回Falseprint(result)except Exception as e:print(e)string-删除 
⽅法delete删除键及对应的值如果删除成功则返回受影响的键数否则则返 回0编写代码如下 
from redis import *
if __name____main__:try:#创建StrictRedis对象与redis服务器建⽴连接srStrictRedis()#设置键name的值如果键已经存在则进⾏修改如果键不存在则进⾏添加result  sr.delete(name)#输出响应结果如果删除成功则返回受影响的键数否则则返回0print(result)except Exception as e:print(e)键 
⽅法keys根据正则表达式键编写代码如下 
from redis import *
if __name____main__:try:#创建StrictRedis对象与redis服务器建⽴连接srStrictRedis()#所有的键resultsr.keys()#输出响应结果所有的键构成⼀个列表如果没有键则返回空列表print(result)except Exception as e:print(e)学习目标 
能够根据课件中的步骤搭建 Redis 的主从 
主从概念 
⼀个master可以拥有多个slave⼀个slave⼜可以拥有多个slave如此下去形成了强⼤的多级服务器集群架构master用来写数据slave用来读数据经统计网站的读写比率是10:1通过主从配置可以实现读写分离 master和slave都是一个redis实例(redis服务) 
主从配置 
配置主 
查看当前主机的ip地址 ifconfig 修改/etc/redis/redis.conf文件 sudo vi redis.confbind 192.168.26.128 重启redis服务 sudo service redis stopsudo redis-server redis.conf 配置从 
复制/etc/redis/redis.conf文件 sudo cp redis.conf ./slave.conf 修改redis/slave.conf文件 sudo vi slave.conf 编辑内容 bind 192.168.26.128slaveof 192.168.26.128 6379port 6378 redis服务 sudo redis-server slave.conf 查看主从关系 redis-cli -h 192.168.26.128 info Replication 数据操作 
在master和slave分别执⾏info命令查看输出信息 进入主客户端 redis-cli -h 192.168.26.128 -p 6379 进入从的客户端 redis-cli -h 192.168.26.128 -p 6378 在master上写数据 set aa aa 在slave上读数据 get aa 为什么要有集群 
之前我们已经讲了主从的概念一主可以多从如果同时的访问量过大(1000w),主服务肯定就会挂掉数据服务就挂掉了或者发生自然灾难大公司都会有很多的服务器(华东地区、华南地区、华中地区、华北地区、西北地区、西南地区、东北地区、台港澳地区机房) 
集群的概念 
集群是一组相互独立的、通过高速网络互联的计算机它们构成了一个组并以单一系统的模式加以管理。一个客户与集群相互作用时集群像是一个独立的服务器。集群配置是用于提高可用性和可缩放性。  
当请求到来首先由负载均衡服务器处理把请求转发到另外的一台服务器上。 
redis集群 分类 软件层面硬件层面  软件层面只有一台电脑在这一台电脑上启动了多个redis服务。  硬件层面存在多台实体的电脑每台电脑上都启动了一个redis或者多个redis服务。 搭建集群 
当前拥有两台主机172.16.179.130、172.16.179.131这⾥的IP在使⽤时要改为实际值 
参考阅读 
redis集群搭建 http://www.cnblogs.com/wuxl360/p/5920330.html[Python]搭建redis集群 http://blog.5ibc.net/p/51020.html 
配置机器1 
在演示中172.16.179.130为当前ubuntu机器的ip在172.16.179.130上进⼊Desktop⽬录创建conf⽬录在conf⽬录下创建⽂件7000.conf编辑内容如下 
port 7000
bind 172.16.179.130
daemonize yes
pidfile 7000.pid
cluster-enabled yes
cluster-config-file 7000_node.conf
cluster-node-timeout 15000
appendonly yes在conf⽬录下创建⽂件7001.conf编辑内容如下 
port 7001
bind 172.16.179.130
daemonize yes
pidfile 7001.pid
cluster-enabled yes
cluster-config-file 7001_node.conf
cluster-node-timeout 15000
appendonly yes在conf⽬录下创建⽂件7002.conf编辑内容如下 
port 7002
bind 172.16.179.130
daemonize yes
pidfile 7002.pid
cluster-enabled yes
cluster-config-file 7002_node.conf
cluster-node-timeout 15000
appendonly yes总结三个⽂件的配置区别在port、pidfile、cluster-config-file三项  使⽤配置⽂件启动redis服务  
redis-server 7000.conf
redis-server 7001.conf
redis-server 7002.conf查看进程如下图  
配置机器2 
在演示中172.16.179.131为当前ubuntu机器的ip在172.16.179.131上进⼊Desktop⽬录创建conf⽬录在conf⽬录下创建⽂件7003.conf编辑内容如下 
port 7003
bind 172.16.179.131
daemonize yes
pidfile 7003.pid
cluster-enabled yes
cluster-config-file 7003_node.conf
cluster-node-timeout 15000
appendonly yes在conf⽬录下创建⽂件7004.conf编辑内容如下 
port 7004
bind 172.16.179.131
daemonize yes
pidfile 7004.pid
cluster-enabled yes
cluster-config-file 7004_node.conf
cluster-node-timeout 15000
appendonly yes在conf⽬录下创建⽂件7005.conf编辑内容如下 
port 7005
bind 172.16.179.131
daemonize yes
pidfile 7005.pid
cluster-enabled yes
cluster-config-file 7005_node.conf
cluster-node-timeout 15000
appendonly yes总结三个⽂件的配置区别在port、pidfile、cluster-config-file三项  使⽤配置⽂件启动redis服务  
redis-server 7003.conf
redis-server 7004.conf
redis-server 7005.conf查看进程如下图  
未完待续 下一期下一章 
全套笔记直接地址 请移步这里