美文网首页
JavaWeb之Linux与Redis

JavaWeb之Linux与Redis

作者: 进击的大东 | 来源:发表于2018-11-08 14:07 被阅读5次

    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客户端开发包

    相关文章

      网友评论

          本文标题:JavaWeb之Linux与Redis

          本文链接:https://www.haomeiwen.com/subject/djkwxqtx.html