linux
  1. history # 偷窥别人常用命令神器
  2. time
    date                                    # 查看时间
    date -s "2018-12-24 10:09:12"           # 修改时间
    hwclock --hctosys                       # 恢复硬件时间
    hwclock -w                              # 同步系统时间到硬件时间
    ntpdate time.windows.com                # 系统时间同步到网络时间
    mv /etc/localtime /etc/localtime.bak    # 修改时区
    ln -s /usr/share/zoneinfo/Asia/Shanghai  /etc/localtime
  3. 开机执行
    vim ~/.bash_profile
    vim ~/.bashrc
  4. 防火墙 root
    iptable -L                   # 查看防火墙状态
    iptable -F                   # 关闭防火墙
  5. 远程拷贝
    scp root@192.168.100.25:/data/release/file_name ./
  6. 查看滚动日志
    tail * -f | grep -E 'Traceback|traceback' -a50
  7. 检索文件关键字
    grep '检索内容' ./ -r
  8. 查文件路径
    updatedb
    locate 文件名
  9. 查看进程&进程配置文件
    ps -ef | grep desc
数据库的原则
  1. mysql用redis做缓存
  2. 运营的数据的需求不要写在业务逻辑里面,而是从源数据里面去导出
mysql
  1. 用户
    mysql -uroot  # 登录
    select user();  # 查看当前用户
  2. CREATE DATABASE database_name;  # 创库
    DROP DATABASE database_name;  # 删库
    show database;  # 查看所有库
    grant all privileges on database_name.* to 'username'@'%' identified by 'password';  # 添加权限
    flush privileges;  # 刷新权限
  3. DROP TABLE table_name;  #删除表
    show tables;  # 查看所有表
    desc table_name;  # 查看单表
    ALTER TABLE `table_name` ADD `field_name` INT NOT NULL DEFAULT COMMENT 'desc' AFTER `field_name`;  # 添加字段
    ALTER TABLE `table_name` ADD PRIMARY KEY `field_name`;  # 给表添加主键
    ALTER TABLE `table_name` DROP `field_name`;  # 删除字段
    show create table `table_name`;  # 查看表创建语句
    SELECT * FROM `table_name01` WHERE  gname LIKE '%xxx%' UNION ALL SELECT * FROM `table_name02` WHERE  gname LIKE '%xxx%';  # 连表查询
redis
  1. 批量删除key
    redis-cli -h 127.0.0.1 -p 6379 -n 0 keys "VPOKR_uifo*" | xargs redis-cli -h 127.0.0.1 -p 6379 -n 0 del
  2. 启动停用重启
    redis-server /etc/redis/redis.conf  # 启用redis
    redis-server stop                   # 停止
    redis-server restart                # 从启
  3. select n  # 切换库
    TTL key  # 剩余生存时间s
    type key  # key的类型
    zrange zsetname 0 -1 withscores  # 遍历zset的key score
    hset hashname field v  # 设置hash字段的值
    hlen hashname  # hash的字段数
    hgetall hashname  # hash所有字段和值
    hmget hashname field  # 获取hashfield值
    sadd setname v  # 给集合添加元素
    smembers setname  # 查看集合内的所有元素
    lpush listname v  # 给列表中左插入一个值
    lrange listname index_min index_max  # 获取列表中第min到第max的元素
    set strname v  # 设置str类型的值
    get strname  # 获取str类型的值
  4. 反序列化
    • redis使用要注意反序列化以后hash里的k,v都会变成str
    • 使用rds.set(‘key’, json.dumps({1: 2})), json.loads(rds.get(‘key’))出来1会变成str 2不会
mongodb
  1. 用户
    mongo -u username -p password 127.0.0.1:27017/database  # 登录
  2. use database_name  # 切换或创建数据库
    db.dropDatabase()  # 删除真正使用的数据库     
    show dbs  # 显示所有数据的列表
    db  # 显示当前数据库对象或集合
    # 给数据创建用户
    db.createUser(
      {
        user:"username",
        pwd:"password",
        roles:[{role:"readWrite",db:"database_name"}]
      }
    )
  3. db.createCollection("table_name", {capped:true, size:1024})  # 创建一个capped表
    db.table_name.insert({x: 1,y: 2,z: 3})  # 增
    db.table_name.drop()  # 删表
    # 查 支持二级查找
    db.table_name.find({
     "fieldname1": {$gt: min},
     "fieldname2.sub_fieldname": v
     }).limit(5).sort({"fieldname1": 1, "fieldname2.sub_fieldname": -1}).pretty()
    # 同一字段and查询
    db.table_name.find({
     $and: [{"fieldname":{$gt:min}}, {"fieldname":{$lt:max}} ]
     })
    db.table_name.find().limit(2).skip(0)  # 从第0个位置开始查2条数据
    db.table_name.ensureIndex({"fieldname": 1})    # 创建索引
    # 聚合 通过fieldname1的值进行分组,求fieldname2的和
    db.table_name.aggregate( [{$group: {_id: "$fieldname1", val: {$sum: $fieldname2} } }] )
文档更新时间: 2026-03-31 17:55   作者:morninglu