Author: admin

websocket服务端与客户端代码示例

websocket服务端与客户端代码示例. ( json socket )

用到了ws库.

步骤:1安装ws

npm install ws

步骤2:服务端代码:

创建websocket.mjs文件,写入以下代码:

import { WebSocketServer } from "ws";

const server = new WebSocketServer({ port: 3000 });

server.on("connection", (socket) => {
  // send a message to the client
  socket.send(JSON.stringify({
    type: "hello 

Redis[快问快答系列]

什么是 Redis?

Redis 是一种基于内存的数据库,对数据的读写操作都是在内存中完成,因此读写速度非常快,常用于缓存,消息队列、分布式锁等场景
Redis 提供了多种数据类型来支持不同的业务场景,比如 String (字符串)、Hash (哈希)、 List (列表)、Set (集合)、Zset (有序集合)、Bitmaps(位图)、HyperLogLog(基数统计)、GEO(地理信息)、Stream(流),并且对数据类型的操作都是原子性的,因为执行命令由单线程负责的,不存在并发竞争的问题。
除此之外,Redis 还支持事务 、持久化、Lua 脚本、多种集群方案(主从复制模式、哨兵模式、切片机群模式)、发布 / 订阅模式,内存淘汰机制、过期删除机制等等。

Redis 和 Memcached 有什么区别?

  • Memcached 只支持最简单的 key-value 数据类型
  • Redis 支持数据的持久化,Memcached 重启或者挂掉后,数据就没了

GO面试题集锦快答

slice 扩容机制

GO1.17版本及之前
当新切片需要的容量cap大于两倍扩容的容量,则直接按照新切片需要的容量扩容;
当原 slice 容量 < 1024 的时候,新 slice 容量变成原来的 2 倍;
当原 slice 容量 > 1024,进入一个循环,每次容量变成原来的1.25,直到大于期望容量。

GO1.18之后
当新切片需要的容量cap大于两倍扩容的容量,则直接按照新切片需要的容量扩容;
当原 slice 容量 
    

REDIS面试问题总结

系统命令

shutdown 正常关闭服务器
redis-server 启动服务器
redis-cli 客户端连接服务器
flushall 删库跑路,一般不这么做

REDIS 持久化 RDB AOF 区别

RDB:[Redis Database] 在指定时间间隔把内存中的数据快照写入磁盘,之后可以备份快照,或者复制到其他服务器创建相同副本,或者服务器重启也会用到这个快照恢复数据,默认持久化方式

触发时机
手动执行save和bgsave时
配置文件 设置  save <seconds> <
    

GitLab 打脸“Ruby on Rails 已死”言论:我还在用呢!

Ruby语言曾在2013至2015年期间非常流行,但随后流行度下降。早在3年前就在业界传出过“Ruby及Ruby on Rails已死”的言论,然而时至今日,连GitLab的CEO Sid Sijbrandij都发文表示:Ruby on Rails仍然是GitLab的坚定选择。那么,这项正走向没落技术究竟具有何种魔力?

“两全其美”的Ruby on Rails

Ruby on Rails(官方简称为Rails,亦被简称为RoR),是一个使用Ruby语言写的开源Web应用框架。Rails的设计原则包括“不做重复的事”(Don't Repeat Yourself)和“惯例优于设定”(Convention Over Configuration,因此一经发布便被不少开发者及大厂采用。…

Webstorm是什么软件?

WebStorm 是一款由 JetBrains 开发的集成开发环境(IDE),它是专门为开发 Web 应用程序而设计的。它提供了许多功能,例如代码自动完成、错误突出显示、重构、调试、版本控制等,可以帮助开发人员提高效率和代码质量。WebStorm 支持多种前端技术,例如 HTML、CSS、JavaScriptTypeScriptReact、Angular、Vue.js 等等,还支持 Node.js 和其它后端技术。WebStorm 是一款商业软件,但是 JetBrains 也提供了学生和开源项目免费使用的许可证。…