<Redis开发与运维>读书笔记   一.初始Redis 1.Redis特性与优点 速度快.redis所有数据都存放于内存:是用C语言实现,更加贴近硬件:使用了单线程架构,避免了多线程竞争问题 基于键值对的数据结构,支持的数据结构丰富.它主要提供了5种数据结构: 字符串. 哈希. 列表. 集合. 有序集合, 同时在字符串的基础之上演变出了位图(Bitmaps) 和HyperLogLog两种神奇的“数据结构”, 并且随着LBS(Location Based Service, 基于位置服务) 的不…
STRING 我们会经常打交道的string类型,在redis中拥有广泛的使用.也是开启redis数据类型的基础. 在我最最开始接触的redis的时候,总是以为字符串类型就是值的类型是字符串. 比如:SET key value 我的理解是value数据类型是stirng类型,现在来看呢,这句话说得不够具体全面. 所有的键都是字符串类型 字符串类型的值可以是字符串.数字.二进制 这里也就引出了,另一个概念:外部类型和内部类型 外部类型 vs 内部类型 这里的外部类型,就是我们所熟知的:字符串(st…
1.前言&基本介绍 在原始的系统架构中,我们都由程序直接连接DB,随着业务的进一步开展,DB的压力越来越大,为了缓解DB的这一压力,我们引入了缓存,在程序连接DB中加入缓存层, 从而减轻数据库压力,而且缓存一般存在于内存中,相比于存在硬盘中的DB在读取速度上绝对是比DB高几个等级.下面我们来简单聊聊关于缓存几个东西 2.缓存的优缺点 缓存的优点就是“快”,一个快字基本能概括了.如上文说的加速读写,分流对数据库的压力,归根结底就是对快字的应用及其本身,缺点主要是如下三点: 1.数据不一致性:DB的…
Getting Start 高性能 性能优势的体现 C语言实现的内存管理 epoll的I/O多路复用技术+IO连接/关闭/读写通过事件实现异步的非阻塞IO TCP协议 单线程架构,不会因为高并发对服务器造成太多压力 Redis内部不支持序列化 上面几个特性保证了Redis的高并发性能 性能指标 单点并发量:压力测试 命令处理速度:每秒数万次操作 key的数量对性能的影响 内存大小对性能的影响 单线程架构 Redis提供了很多API,单线程架构不需要担心一些API对数据操作的一致性问题 不会因为高…
Redis用途 1.缓存 Redis提供了键值过期时间设置, 并且也提供了灵活控制最大内存和内存溢出后的淘汰策略. 可以这么说, 一个合理的缓存设计能够为一个网站的稳定保驾护航. 2.排行榜系统 Redis提供了列表和有序集合数据结构, 合理地使用这些数据结构可以很方便地构建各种排行榜系统. 3.计数器应用 Redis适用于高并发的递增.递减功能 递增指令:incr(默认从0开始) 递减指令:decr(默认从0开始,递减会出现负数,这点跟memcache不一样,mc到0) 4.社交网络 赞/踩.…
第1章 初识Redis 1. Redis介绍: Redis是一种基于键值对(key-value)的NoSQL数据库. 与很多键值对数据库不同的是,Redis中的值可以是由string(字符串).hash(哈希).list(列表).set(集合).zset(有序集合)等多种数据结构和算法组成,因此Redis可以满足很多的应用场景. 而且因为Redis会将所有数据都存放在内存中,所以它的读写性能非常惊人. 不仅如此,Redis还可以将内存的数据利用快照(RDB)和日志(AOF)的形式保存到硬盘上,这…
一.初始Redis 1.Redis特性与优点 速度快.redis所有数据都存放于内存:是用C语言实现,更加贴近硬件:使用了单线程架构,避免了多线程竞争问题 基于键值对的数据结构,支持的数据结构丰富.它主要提供了5种数据结构: 字符串. 哈希. 列表. 集合. 有序集合, 同时在字符串的基础之上演变出了位图(Bitmaps) 和HyperLogLog两种神奇的“数据结构”, 并且随着LBS(Location Based Service, 基于位置服务) 的不断发展, Redis3.2版本中加入有关…
常用命令 redis-server启动redis redis-server /opt/redis/redis.conf    配置启动 redis-server --port 6379 --dir /usr/local/data(存放持久化文件和日志文件的目录)   按照参数启动其他配置默认 redis-cli命令行客户端 redis-cli -v  查看redis的版本信息 redis-cli -h {host} -p {port}   交互式方式连接 redis-cli -h {host}…
主要是命令相关 第一章 初识Redis 1.redis是基于键值对的NoSQL. 2.redis的值可以是 string, hash, list, set, zset, bitmaps, hyperloglog, geo 3.redis的值不仅可以是字符串还可以是具体的数据结构 4.redis的2种持久方案:rdb和aof. 5.redis-server XXX.conf可以以conf的配置启动redis. 6.redis-cli shutdown可以关闭redis. 不要使用kill -9 杀…
Linux 安装 我的系统是inux 系统,官网下载 https://redis.io/download redis-5.0.5.tar.gz 解压: 编译安装: 官网和文档说得已经很清楚了,现在就执行编译安装. 安装完成后,验证一下: sunchong@sunchong-PC:~$ redis-cli -v redis-cli 5.0.5 因为现在安装后,执行文件直接放到了 /usr/local/bin一份,这样在任何目录下都可以执行命令 现在我们就先关注两个:redis-server(服务端…
问题 最近项目重构,提前想把一台上的redis实例转移到另一台redis实例上. 源redis数据库:阿里云Redis.VPC网络.Server版本2.8.19 目标数据库:阿里云Redis.VPC网络.Server版本4.0.11 前提: 当前我们使用Redis作为我们的数据库(永久+ 临时缓存) 目标: 把当前永久性数据导入到目标数据库,临时缓存数据不做处理 方案 设置主从复制,这个应该是比较稳妥的方案,但是支持主从必须3.0以上 -- 这个方案否掉了 那就使用键迁移命令,查了一下三种方式:…
对于上一篇文章,我又自己总结归纳并补充了一下,有了第二篇. 概览 <<左移 开始之前,我们先准备点东西:位运算 i<<n 总结为 i*2^n 所以 1<<5 = 2^5 1<<8 = 2^8 1<<16 = 2^16 1<<32 = 2^32 1<<64 = 2^64 SDS 5种数据类型 Redis 3.2 以后SDS数据类型有5个 #define SDS_TYPE_5 0 #define SDS_TYPE_8 1 #d…
Redis 特性 速度快 内存数据库 L1 cache reference 读取CPU的一级缓存 0.5 ns Branch mispredict (转移.分支预测) 5 ns L2 cache reference 读取CPU的二级缓存 7 ns Mutex lock/unlock 互斥锁\解锁 100 ns Main memory reference 读取内存数据 100 ns Compress 1K bytes with Zippy 1k字节压缩 10,000 ns Send 2K byte…
上一篇,有朋友留言redis-port,借此机会我尝试使用一下redis-port这个同步工具 redis-port 已编译版 https://github.com/CodisLabs/redis-port/releases cd 到解压目录 redis-dump 定义:持久化数据 执行:$ ./redis-dump 127.0.0.1:6999 -o dd/dump.rdb 验证 $ ls -ls 总用量 4 4 -rw-r--r-- 1 sunchong sunchong 217 10月 2…
常见的持久化开发与运维问题 fork 操作 fork 操作是一个同步操作,若执行较慢会阻塞 redis 主线程 执行时间与内存量相关:内存越大,耗时越长:虚拟机较慢,真机较快 查看 fork 执行时间,可做监控 info : latest_fork_usec 上一次执行fork的微秒数 改善 fork 优先使用物理机或者高效支持fork操作的虚拟化技术 控制 Redis 实际最大可用内存:maxmemory 合理配置 Linux 内存分配策略 vm.overcommit_memory = 1 默…
最新经典linux运维兄弟连Linux运维学习笔记... --------------- 全程1.5倍播放.加油我一定可以学完Linux----------------------Unix与Linux的发展史开源软件简介Linux的应用领域Linux的学习方法-------------------Unix:发源于美国的贝尔实验室,肯-汤普森1971年丹尼斯-里奇 发明了C语言---------Linux系统诞生于1991年,由芬兰的李纳斯-Linus编写的Linux的小企鹅图标:企鹅来自于南极和…
这是一个创建于 375 天前的主题,其中的信息可能已经有所发展或是发生改变. 由数人云.优维科技.中生代社区联合发起的 系列 Meetup < DevOps&SRE 超越传统运维之道> 先后在深圳.北京举行过两场 7 月 15 日上海站,敬请期待 ▼ 王一男老师在< DevOps&SRE 超越传统运维之道·北京站>活动中,结合百度的实践,讲述落地 DevOps 时,首先要拆掉业务→开发→测试→运维中间的这三面墙,一起来看一下吧! 数人云友情提示:前方全文约 9000…
saltstack自动化运维快速入门 关于saltstack 这个软件是干啥的 我这里就不介绍了 只是简单的说下是干啥的 网上的说法是 它是func的强化版本+ puppet的精简版 关于puppet 这2年 很火(我们线上也用到了他的部分功能) 以后有时间再写一套puppet的吧 今天将saltstack 这个东西 saltstack这个东西目前国内资历比较少 大部分资料都是从官网看的(英文的) 官网文档的地址我贴下吧 http://docs.saltstack.com/contents.ht…
之前介绍了Docker管理工具-Swarm部署记录,这里简单总结下Docker Swarm的日常维护命令,以作为平时运维笔记. Swarm作为一个管理Docker集群的工具,首先需要将其部署起来,可以单独将Swarm部署于一个节点.另外,自然需要一个Docker集群,集群上每一个节点均安装有Docker.具体的Swarm架构图可以参照下图: Swarm架构中最主要的处理部分自然是Swarm节点,Swarm管理的对象自然是Docker Cluster,Docker Cluster由多个Docker…
教程目录 一:python基础(略,基础还是自己看书学吧) 二:bottle基础 python bottle web框架简介 python bottle 框架环境安装 python bottle 框架基础教程:路由(url定义) python bottle 框架基础教程:HTTP 请求方法 python bottle 框架基础教程:模板使用 python bottle 框架基础教程:模板语法 python bottle 框架基础教程:模板继承 python bottle 框架基础教程:静态资源…
在开发及项目运维中,对数据库的操作大家目前都是使用客户端工具进行操作,例如MySQL的客户端工具navicat,Oracle的客户端工具 PL/SQL Developer, MSSQL的客户端工具查询分析器等.目前大家使用的大都是C/S单机版的客户端工具,要连数据库的电脑都要安装客户端工具, navicat还比较好安装,而Oracle客户端工具安装就比较麻烦了. 当对远程服务器的数据库进行访问管理时,特别是Linux服务器,都要开启相应端口,这样也增加了服务器的安全隐患,增加了工作量. 如果有基…
在开发及项目运维中,对数据库的操作大家目前都是使用客户端工具进行操作,例如MySQL的客户端工具navicat,Oracle的客户端工具 PL/SQL Developer, MSSQL的客户端工具查询分析器等.目前大家使用的大都是C/S单机版的客户端工具,要连数据库的电脑都要安装客户端工具, navicat还比较好安装,而Oracle客户端工具安装就比较麻烦了. 当对远程服务器的数据库进行访问管理时,特别是Linux服务器,都要开启相应端口,这样也增加了服务器的安全隐患,增加了工作量. 如果有基…
Python语言是一种面向对象.直译式计算机程序设计语言,由Guido van Rossum于1989年底发明.Python语法简捷而清晰,具有丰富和强大的类库,具有可扩展性和可嵌入性,是现代比较流行的语言. 一.最流行的语言 IEEE Spectrum 的数据记者挖掘了 10 个在线来源组合了 12 种指标给 48 种语言进行排名,评出了2017 年十大流行编程语言.它的结果与流行的编程语言排名存在显著差异一点是:今年最流行的是语言是 Python,除此之外十大编程语言基本上与其他来源的排名相…
一:sentinel运维监控 Sentinel不断与master通信,获取master的slave信息. 监听master与slave的状态 如果某slave失效,直接通知master去除该slave. 如果master失效,,是按照slave优先级(可配置), 选取1个slave做 new master ,把其他slave--> new master 疑问: sentinel与master通信,如果某次因为master IO操作频繁,导致超时, 此时,认为master失效,很武断. 解决: s…
有三台redis服务器6379.6380.6381,配置6379为主服务器,6380与6381都为6379的从服务器.如果主服务器6379挂掉了,我们怎么办? 方式一:手动修改从服务器的配置,将6380设置为主服务器,6381为6380的从服务器,并且6380设置为可写,6381为只读. 方式二: 运用运维工具sentinel监控…
过去几个月,DevOps on Windows网站推出了一系列文章,详细讲解了开发者应怎样创建便于运维的Windows服务.这一系列文章详细分析了如何克服在运维部门看来最困难的部分:Windows服务的安装与其启动阶段. 其中有些困难是由于安装基于.Net的Windows服务时,普遍使用了InstallUtil这个非原生的Windows工具.同时要特别当心启动阶段的代码,它应在启动失败时确保提供清晰的错误信息,并且要能够支持运行时间较长的操作,例如从数据库中装载与缓存数据. DevOps on…
有很多开源自动化运维工具都很好用如ansible/salt stack等,完全不用重复造轮子.只不过,很多运维同学学习Python之后,苦于没小项目训练.本篇就演示用Python写一个批量操作主机的工具. 1 思路分析 在运维工作中,古老的方式部署环境.上线代码可能都需要手动在服务器上敲命令,不胜其烦.所以,脚本,自动化工具等还是很有必要的.我觉得一个批量操作工具应该考虑以下几点: (1)本质上,就是到远程主机上执行命令并返回结果. (2)做到批量.也就是要并发对多台机器进行操作. (3)将返回…
原文地址:http://edustack.org/ 所需知识: Linux Git Python (Django Mako coffeescript sass) (MongoDB Mysql) Ansible-playbook Gem 项目介绍: http://code.edx.orghttp://iblstudios.com/wp-content/uploads/2014/08/IBL-Open-edX-Ebook-2014.pdf 项目页: http://github.com/edxhttp…
文件系统知识总结 新买的硬盘要存放数据需要怎么做? 首先将硬盘装机做RAID,做完RAID后进行分区,分完区后格式化创建文件系统,最后存放数据. 硬盘的内外部结构: 物理形状: 接口类型: IDE(Integrated Drive Electronics)即“电子集成驱动器”. SCSI(Small Computer System Interface)小型计算机系统接口. SATA(Serial Advanced Technology Attachment)串口硬盘. SAS(Serial At…
最近博主开始接触自动化运维.首先就是zabbix这个开源的监控系统 一开始博主只是在自己的虚拟机上尝试安装.最后终于开始在公司的服务器上正式安装,教程博主也是通过度娘找的 这是原文:链接 安装环境:Centos 6.5 zabbix版本:zabbix-2.4.5  此版本下载云盘下载地址:百度云 官网链接:链接 博主一开始遇到很多权限问题.最终还是用root用户安装的 第一步先安装基础依赖包.主要如果本身就已经安装的包不用再次安装.可能会导致多个版本: [root@zabbix-server ~…