MongoDB

基础 概念 sql概念 mongodb概念 说明 database database 数据库 table collection 数据库表/集合 row document 数据记录行/文档 column field 数据字段/域 index index 索引 table joins 无 表连接,mongodb不支持 object 嵌入文档 mongodb通过嵌入式文档替代多表连接 primary key primary key 主键,mongodb自动将_id字段设置为主键 BSON数据类型 数据类型 描述 举例 字符串 UTF-8编码的字符串 {“x”:“foobar”} 对象id 文档唯一id {“x”:Objectid()} 布尔值 trur/fales(不可双引号) {“x”:true} 数组 值的集合或者列表 {“x”:[“a”,“b”]} 64位浮点数 数字都是这个类型 {“x”:3.14,“y”:3} null 表示空值或未定义对象 {“x”:null} undefined 文档中也可以使用未定义类型 {“x”:undefined} 正则表达式 使用js的正则表达式语法 {“x”:/foobar/i} 代码 可包含js语法 {“x”:function(){}} shell默认使用64位浮点型数值。{“x”:3.14或{“x”:3}。对于整型值,可以使用NumberInt(4字节符号整数)或 NumberLong(8字节符号整数),{“x”:NumberInt(“3” ){“x”:NumberLong(“3”)} 基本命令 数据库相关 查看所有数据库 show databases ...

2024-08-09 · 3 分钟 · Nebula

Redis

配置 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 #redis.conf 设置显示行号 :set nu 搜索 /daemonize 把daemonize no 的no改为yes #(该配置为是否让redis作为服务(守护进程)在后台启动) 搜索 /protected-mode 把protected-mode yes 改为no #(该配置为resis的安全模式,当他开启就会禁止别人访问redis,如操作redis的工具) 搜索 /bind 127.0.0.1 -::1 注释掉bind 127.0.0.1 -::1 #(该配置生效时表示只有本机能访问redis,这显然是不行的,注释掉它) 搜索requirepass foobared 把改行的注释取消掉 并把 foobared 改成自己的密码 (该配置为设置自己的redis登录密码) 搜索 /port 6379 把端口号修改成自己需要的端口。 服务启动/结束 1 2 3 4 5 6 7 8 9 10 11 12 13 #使用我们修改好的 redis.conf 配置文件启动服务! redis-server /opt/redis-7.0.0/redis/redis.conf #查看redis服务是否启动 ps -aux | grep redis | grep -v grep #使用我们修改过的 密码 以及 端口号 登录客户端! redis-cli -a 你的密码 -p 你的端口 #在Redis命令行中:输入shutdown退出(quit退出服务) #在Redis命令行外: redis-cli -a 你的密码 -p 你的端口(可填多个端口) shutdown 常用命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 help @? # 查询帮助,比较有用 set k v #设置一个String类型的数据k 值为v get k #获取k?的值 keys * #查询所有key exists k #k是否存在,返回1表示存在 type k #查询数据类型 del k #删除指定key unlink k #异步删除,对于大数据的删除,使用异步防止阻塞 ttl k #数据是否过期,返回-1表示永不过期,-2表示已过期。数据在默认情况下永不过期 expire k S #设置k在s秒后过期(过期会删除该值) move k index #将k移动到下标为index的数据库中 select index #切换到下标为index的数据库 #(redis中我们默认处于0号数据库) dbsize #统计数据库中key的数量 flushdb #清空当前数据库(谨慎使用!) flushall #清空所有数据库(谨慎使用!) 十大数据类型 String(字符串) String是redis中最基本的数据类型,一个key对应1个value redis中的String是二进制安全的(支持序列化),这意味着我们可以将二进制存储的文件存入其中,比如:一张图片。 redis中单个String的最大容量为521M 基础命令 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 set命令中的可选参数分别有 get EX PX EXAT PXNX NX XX KEEPTTL GET用法 set k1 jack GET #它会把k1赋值为jack,但同时返回k1之前的值 EX用法 set k1 jack EX 10 #设置k1值为jack,但在10秒后过期(expire) PX用法 set k1 jack PX 100 #设置k1值为jack,但在100毫秒后过期 EXAT用法 set k1 jack EXAT 1685775704 #设置k1值为jack,但在指定的秒级unix时间戳后过期 set K1 JACK PXAT 1685775857409 #设置k1值为jack,但在指定的毫秒级unix时间戳后过期 NX用法 set k1 jack NX #当k1不存在时设置k1的值为jack XX用法 set k1 tom XX #当k1存在时才将k1的值设为tom KEEPTTL用法 set k1 jack KEEPTTL #当我们在设置给key赋值时偶然或遇到这样的业务需求,只改变key的值,但不要改变之前设置的过期时间。 #这时我们就需要用到KEEPTTL,要知道普通的set赋值会改变value的过期时间(默认为-1:即永不过期) mset k1 v1 k2 v2 k3 v3 #设置多个值(m multi多个) #注意 mset k1 v1 k2 v2 k3 v3 NX 当其中一个不满足条件则全部失败 mget k1 k2 k3 k4 #获取多个值 getrange k1 1 2 #截取k1,从下标1-下标2 getrange k1 0 -1 #获取全长 setrange k1 1 omomom #定位替换,从下标1开始替换字符串 INCR k2 #递增k2(k2必须为数字!) DECR K2 #递减k2(k2必须为数字!) INCRBY k2 2 #每次递增步长为2 DECRBY k2 #每次递减步长为2 strlen k1 #获取k1的长度 append k1 #往k1尾部插入字符 getset k1 v1 #与set k1 v1 get一样,它会把k1赋值为v1,但同时返回k1之前的值 分布式锁 1 2 3 4 5 setnx k1 jack #当k1不存在设置值为jack setex k1 jack #当k1存在设置值为jack set k1 jack nx与setnx k1 jack区别 ...

2024-08-09 · 7 分钟 · Nebula