JavaWeb之Linux与Redis

Web基础加强
注解
jdk注解回顾
@Override
@SuppressWarnings
@Deprecated
什么是注解
注解和接口类一样,都是一种数据类型。
注解可以在变量方法类上加载
注解可以有属性,也可以没有
注解有作用范围(源码,编译期间,运行期间)
自定义注解
格式
public @interface MyAnno01 {
//注解的数据类型有哪些
public long timeout() default -1;
public Class c() default java.util.Date.class;
}
注解的数据类型

基本数据类型(四类八种)
字节码类型:Class
注解类型
枚举类型
支持类型的一维数组类型
作用
配置作用,代码分析,取代xml

如果配置信息不会发生频繁的改动,如Servlet的路径,建议使用Servlet
编译检查

编写文档

注解案例
元注解

@Retention:指定注解的作用域

编译期间
运行期间
源代码
@Target:指定注解的目标对象

案例
新建注解,通过Retention指定作用域,Target指定作用目标,否则反射的时候找不到
新建类,在指定方法上添加自定义注解
定义入口类,通过反射找到有注解的方法,执行
设计模式
常用设计模式
单例模式
工厂模式
代理模式
装饰者模式
Linux系统
Linux目录结构
只有一个目录,根目录

usr:相当于progrem files
etc:存放系统配置文件
root:系统管理员默认目录
home:存放其它用户的目录
Linux连接软件CRT
快速连接
修改编码
Linux简单常用命令
ll:查看当前所有

ls:列出目录内容

ls -al:查看目录下文件详细信息

cd /:根目录

cd -:上一次访问的目录

cd ..:上一级目录

li /bin/:列出根目录下bin目录下信息

mkdir:创建目录

touch 1.txt:创建文件

mkdir -pv:父目录不存在先创建父目录

pwd:打印工作目录

cat 文件名:显示文本文件内容

more:文件名分页显示文件内容

less mN 文件名:分页显示文件内容,显示行号

输入/字符串:查看文件时搜索指定字符串,向下搜索
?字符串:向上搜索
tail -10 ip.log:显示日志的后10行内容

cp ip.log ip2.log:复制文件到另一个文件,可以在不同目录间复制

cp -r ./c ./e:复制目录,可以复制多层目录

mv:移动或更名现有的文件或目录

rm 文件:删除文件,加-f表示强制删除,-f可以删除目录

find /root/ -name 'in*':搜索目录下in开头的文件

grep:过滤与管道

过滤:cat install.log|grep -i "in"
管道:ps -ef|grep -i 'in'
zxvf:常用解压 tar -zxvf

zcvf:常用压缩--tar -zcvf ./xxx.tar ./d/

权限:

chmod u-rwx ./1.txt 取消用户读写1.txt的权限
chmod 777 ./1.txt 添加所有权限
/etc/init.d/iptables status:查看哪些端口开放

/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT:开放8080端口

/etc/rc.d/init.d/iptables save:运行规则,假如开放端口了执行此命令保存状态

rpm -qa | grep java:查看已经安装的java

service mysqld start:启动mysql服务

make:编译源代码

./bin/redis-cli shutdown:停止redis服务

VIM命令
输入VIM 文件名进入vim编辑器
输入i进入插入模式
按下esc退出插入模式
在一般模式下输入:wq退出vim编辑
:q!:强制退出不保存
redis
非关系型数据库产生需求
对数据高并发读写的需求,当数据库并发负载非常高,每秒要达到数万次读写时
对海量数据高效率的存储和访问的需求
数据库的高扩展性和高可用性的需求
NOSQl特点
易扩展
大数据量,高性能
灵活的数据模型
高可用
NOSql数据库分类
键值存储数据库:

相关产品:Tokyo Cabinet/、Redis、Voldemort、Berkekey DB
典型应用,内存缓存,大数据量的高访问负载
数据模型:一系列键值对
优势:快速查询
劣势:存储的数据缺少结构化
列存储数据库

相关产品:Cassandra、HBase、Riak
典型应用:分布式的文件系统
数据模型:以列簇式存储,将同一列数据存在一起
优势:查找速度快,可扩展性强,更容易进行分布式扩展
劣势:功能相对局限
文档型数据库

相关产品:CouchDB、MongoDB
典型应用:web应用
数据模型:一系列键值对
优势:数据结构要求不严格
劣势:查询性能不高,而且缺乏统一的查询语法
图形数据库

Neo4j、InfoGrid、Infinite Graph
典型应用:社交网络
数据模型:图结构
优势:利用图结构相关算法
劣势:需要对整个图做计算才能得出结果,不容易做分布式的集群方案
Redis数据库
定义:由C语言实现的直接操作内存的开源的高性能的数据库软件
Redis数据库的数据类型
字符串类型
散列类型
列表类型
集合类型
有序集合类型
Redis应用场景
缓存(数据查询、短链接、新闻内容、商品内容等等)
聊天室的在线好友列表
任务队列(秒杀、抢购、12306)
应用排行榜
网站访问统计
数据过期处理
分布式集群架构中的session分离
Redis安装
下载源代码

安装编译依赖包gcc

解压源代码

编译源码为o文件

显示it good idea编译成功

执行make PREFIX=/usr/local/redis install安装

拷贝配置文件到安装目录

启动redis

前端模式启动(不推荐):/usr/local/redis/bin/redis-server

后台启动:修改配置文件

执行./bin/redis-server ./redis.conf后台启动
查看redis端口:ps -ef | grep -i redis

打开redis客户端:./bin/redis-cli

keys *:查看数据库所有键

redis命令
set name amey
flushall:删除所有数据库的所有key
flushdb:删除当前数据库中的所有key
redis数据结构
定义key的注意事项

不要过长或过短
统一的命名规范
String

value最多容纳512M

二进制安全的,存入和获取的数据相同

常用命令:

赋值:set name mary
取值:get name || getset name dadong(先获取在设置)
删除:del name
数值增减:incr num (对数字值加1) || decr num(递减)
扩展命令:incrby num 5(递增5)
哈希(hash)

String key和String value的map容器

每一个hash可以存储4294967295个键值对

hset myhash age 18:存储map数据

hmset myhash2 username rose age 20(一次存储多个键值对的map)

hgetall myhash:获取map中所有键值对

hdel myhash username:删除map中字段

list:

set:不可以重复

sadd myset a b c:向set添加三个值
srem myset 1 2:删除值
smembers myset:获取集合元素
sdiff mya1 mya2:差集运算
sinter mya2 myb2:交集
sunion mya3 myb3:合并并去重
sdiffstore my1 my2 my3:获取差集存新数据
使用场景:跟踪唯一数据,
sorted-set

成员在集合中是有序的
应用场景:游戏排名,微博热点话题,构建索引数据
zadd mysort 70 zs 80 li
zscore mysort zs:获取数据分数
zcard mysort:获取总数
zrem mysort tom ww:删除集合中数据
zrange mysort 0 -1:查找集合内指定范围的数据,这里是所有
keys

keys *:查所有key
del my1:删除key
rename my newmy:重命名键
expire my 1000:设置过期时间
type my:获取类型
Redis特性

一个redis实例可以有16个数据库
一台机器安装多个redis只要保证端口号不冲突
select 1:选择1号数据库
multi (开启)、exec(提交)、discard(回滚):事物的操作
redis持久化

redis数据默认在内存当中,只有写入硬盘才能在重启redis后保证数据还在
RDB方式:指定时间存储一次,在redis.conf中配置
AOF方式:每修改一次存储,在redis.conf中配置
Jedis
Jedis是redis官方首选的Java客户端开发包

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,809评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,189评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,290评论 0 359
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,399评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,425评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,116评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,710评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,629评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,155评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,261评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,399评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,068评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,758评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,252评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,381评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,747评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,402评论 2 358

推荐阅读更多精彩内容

  • 关于Mongodb的全面总结 MongoDB的内部构造《MongoDB The Definitive Guide》...
    中v中阅读 31,945评论 2 89
  • 这段时间对IT行业与CT行业有了稍微的了解。IT中文简称:信息科技,10多年前,中国刚刚听到了互联网浪潮到来的前夕...
    荻确如此阅读 7,202评论 9 3