fsoooo Blog

内不欺己,外不欺人,上不欺天。君子所以慎独。

Shell学习笔记 Linux基础

学习Shell的同时,我们先来简单的认识一下操作系统。 一 从认识操作系统开始 1.1 操作系统简介 我通过以下四点介绍什么操作系统: 操作系统(Operation System,简称OS)是管理计算机硬件与软件资源的程序,是计算机系统的内核与基石; 操作系统本质上是运行在计算机上的软件程序 ; 为用户提供一个与系统交互的操作界面 ; 操作系统分内核与外壳(...

Sql踩坑记录 Update多个字段

最近遇到了把我坑惨的一个update语句: update apps set owner = '10011' and owner_name = 'xiaoming' where owner_code = '10010' and owner_name = 'lihua';  在MySQL里面update一条记录,语法都正确的,但记录并没有被更新… 刚遇到这个问题的时候,我拿到这条语句直接在...

Sql优化:用case When优化统计查询

最近在做的项目,有很多统计数据的地方,由于数据量相对较多,之前写的查询语句查询五十万条数据大概需要十秒左右的样子,严重影响了效率。后来在网上寻找解决方案,利用sum,case…when…重写SQL性能一下子提高到一秒钟就解决了。 这里为了简洁明了的阐述问题和解决的方法,我简化一下需求模型。 现在数据库有一张订单表(经过简化的中间表),表结构如下: CREATE TABLE `stati...

Sql 语句有过多的 Join,可取吗?

在业务中,涉及到两个或多个表联查的时候,我们通常会使用join把表的行结合起来。 SQL中的join可以根据某些条件把指定的表给结合起来并将数据返回给客户端。 join的方式有 inner join  内连接 left join 左连接 right join 右连接 full join 全连接 在项目开发中如果需要使用jo...

在线作图工具 Processon

一、前言 最近项目需要,需要画网络拓扑图,在网上找了可以画拓扑图的作图工具:visio、亿图图示、PowerPoint(PPT)、ProcessON。 在以前的项目里用ProcessON画过流程图,没想到还可以满足拓扑图的需求,于是就好好了解学习了。 本文分享ProcessON的作图。 IT从业者的绘图能力,与其说是软实力,不妨说是基本功。 无论从事的是开发、运维、通信,甚...

Redis学习笔记 八大数据类型及其使用场景

Redis-key 127.0.0.1:6379> keys * (empty list or set) 127.0.0.1:6379> set name xxx OK 127.0.0.1:6379> keys * 1) "name"127.0.0.1:6379> set age 1 OK 127.0.0.1:6379> keys * 1) "age"2) ...

Redis学习笔记 Redis持久化

redis持久化的几种方式 Redis是一种key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。支持在服务器端计算集合的并,交和补集(difference)等,还支持多种排序功能。所以Redis也可以被看成是一个数据结构服务...

Redis学习笔记 Redis安装与使用

简介 Redis 是完全开源免费的,遵守BSD协议,是一个高性能的key-value数据库。 Redis 与其他 key - value 缓存产品有以下三个特点: Redis支持数据的持久化,可以将内存中的数据保存在磁盘中,重启的时候可以再次加载进行使用。 Redis不仅仅支持简单的key-value string类型的数据,同时还提供list,set,zset,hash等数...

Redis学习笔记 Redis加锁

#redis加锁的几种实现 1. redis加锁分类 redis能用的的加锁命令分表是INCR、SETNX、SET 2. 第一种锁命令INCR 这种加锁的思路是, key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作进行加一。 然后其它用户在执行 INCR 操作进行加一时,如果返回的数大于 1 ,说明这个锁正在被使用当中。 1、 客户...

Redis学习笔记 Redis为什么默认16个数据库?

我们在项目中常常常用Redis做缓存,分布式锁、消息队列等,但为什么Redis默认建立了16个数据库呢? 一、16个数据库的由来 Redis是一个字典结构的存储服务器,一个Redis实例提供了多个用来存储数据的字典,客户端可以指定将数据存储在哪个字典中。 这与在一个关系数据库实例中可以创建多个数据库类似,所以可以将其中的每个字典都理解成一个独立的数据库。 Redis默...