鱼C论坛

 找回密码
 立即注册
查看: 1095|回复: 4

这个项目有哪些参考的资料啊?

[复制链接]
发表于 2023-3-5 12:13:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 TekkenSteve 于 2023-3-5 12:46 编辑

项目介绍(场景描述):
小爪最近非常的恼火,因为他发现他写的程序在关闭之后,输入进去的数据全都不见了,所以小爪想,要是我有个服务来存储这些数据就好了。首先小爪去学了io流,将数据全部写进文件里,虽然存是存下来了,但是这些数据是无序的,无法得知某一个数据究竟是干什么的,这让小爪更恼火了,白干。正好,小爪最近在学习数据结构这门课程。有一天,小爪在学习到哈希表的时候突然悟了,这种k-v结构好神奇,他应该可以帮助我解决无法标识数据存储问题。所以小爪给数据配了一个key,标识这个数据。但是仅仅标识一个数据还不够,有些数据是同一类型的,小爪又想了个法子,既然单独一个数据可以用一个key来标识,那一组相同类型的数据,也可以用一个key来标识。小爪很兴奋,又想了想,一个一个数据,就好像一个一个人一样,那也应该可以左进右进,左出右出,那我再封装一下,不就成队列(先进先出)和栈(后进先出)了吗?好家伙,意外之喜。但是小爪又蒙了,之前学过的集合框架全忘了,去哪找可以左进右进,左出右出的数据结构呢?你能帮帮小爪吗?
总结:本次考核要求,为小爪设计一个key-value数据库,并且利用java集合框架,完成以下要求。
涉及技术关键字:
1.        I/O流
2.        集合框架
3.        Java异常处理
4.        多线程
5.        Socket编程
6.        字符串处理
功能要求:
(一)        基本内容及功能:
一、使用socket编程,手写一个服务端和一个客户端,开启一个服务端后再开启一个客户端,该服务端能对该客户端进行相应的内容响应
二、使用多线程,使得服务器可以同时对多个客户端进行响应
三、字符串类型(HashMap)
1.        set [key] [value] 存储key - value型数据
例如:set name zs 存储key为 name value为zs的数据,返回1

                               
登录/注册后可看大图



2.        get [key]  获取 key 对应的value
例如:get name 获取key为name 的value,返回value

                               
登录/注册后可看大图


3.        del [key]  删除 key 对应的value
例如:del name 删除key 与 key对应的value,返回1表示删除成功

                               
登录/注册后可看大图




想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2023-3-5 12:40:50 | 显示全部楼层
四、双向链表类型 (HashMap<String,LinkedList<String>>)
一个key对应一个双向链表,即可左右遍历,可以当栈,也可以当队列使用的数据结构
1.        lpush [key] [value] 可直接放一个数据在左端
例如:lpush score 90,返回1表示插入成功

                               
登录/注册后可看大图

2.        rpush [key] [value] 可直接放一个数据在右端
例如:rpush score 100,返回1表示插入成功

                               
登录/注册后可看大图

3.        range [key] [start] [end] 从左到右开始,将key 对应 start - end 位置的数据全部返回

                               
登录/注册后可看大图

例如:range score 0 1 返回0 与 1 位置上的数据  (这里区间你们可以自己决定开闭,但是要注意,后续还有这种要区间的,要统一)
注意:这里的第一个位置的数是从右往左第一个数!!!
4.        len [key] 获取 key 存储数据的个数
例如:len score 返回 数字,表示key中数据的个数

                               
登录/注册后可看大图


5.        lpop [key] 获取key最左端的数据并删除
例如:lpop score 返回 1 表示删除成功 0 失败

                               
登录/注册后可看大图

6.        rpop[key] 获取key最右端的数据并删除
例如:rpop score 同上

                               
登录/注册后可看大图

7.        ldel [key] 删除key 所有的数据
例如:ldel score 同上

                               
登录/注册后可看大图

五、其它指令
1.        心跳指令:ping 响应 pong
例如:ping 返回 pong

                               
登录/注册后可看大图

2.        实现单独一个help 获取所有command指令使用方式,以及help [command] 获取单个command指令使用方式
例如:help set
返回 set [key][value]

                               
登录/注册后可看大图
                                                   

例如:help
返回所有指令

                               
登录/注册后可看大图


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-5 12:42:12 | 显示全部楼层
本帖最后由 TekkenSteve 于 2023-3-5 12:47 编辑

六、实现文件配置监听端口号
(二)        高级功能:
一、实现数据持久化,可以将产生的set指令与del指令写入文件。开启程序时读取。
二、实现日志文件,记录连接程序的ip以及程序运行时异常。
三、实现文件配置日志、数据持久化文件存储地址等等
四、哈希类型(HashMap<String,ArrayList<HashMap<String,String>>)
一个key 对应多个 key - value型数据,例如User1 username zs age 20
1.        hset [key] [field] [value]  
例如:hset user1 name zs 存储key为 user1 中 field 为 name value 为zs 的数据
2.        hget [key] [field]
例如:hget user1 name 获取 user1 中 name 字段的value
3.        hdel key [field]
例如:hdel user1 name 删除user1中name与其value值
例入:hdel user1 删除key 为 user1 中 所有的数据

考核建议
1.        请好好利用Java集合框架,里面的一些方法要熟练使用,如果不太了解,请先学习完集合框架再动手。
2.        请先思考好整体架构,不要盲目开始敲代码。
3.        文件存储可自定义格式存储,配置文件可用.property文件或者自定义文件格式存储,对于指令描述这种无需变更的数据,可直接存放在文件当中,启动服务器时读取文件即可。
4.        尽量不要在控制台爆红导致服务停止。
5.        每个指令都要有相应的响应值,比如说查无指令、不存在key时返回空、修改成功返回1等等,可自定义但必须要见值知意且在说明文档写出。
6.        各种数据结构请尽量不要嵌套使用,比如双向链表里嵌套双向链表等。
7.        在服务端的控制台可以打印相应的日志数据以便debug等。
8.        可以利用反射,类加载机制来优化项目,提高代码扩展性与简洁性。
其他要求
1. 客户端界面
不用很美观,有个输入>就好了
例如

                               
登录/注册后可看大图
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-3-5 12:44:29 | 显示全部楼层
本帖最后由 TekkenSteve 于 2023-3-5 12:47 编辑

以上就是求助,不求大佬帮忙做,就希望能推荐一些视频,或者资料能比较好的解决这些问题。我自己回去学。。谢谢。最好能指条比较清晰的学习路线。万分感谢。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-5 12:22:10 | 显示全部楼层
新鱼油发不了图片/gfi哈,可以放在百度网盘里给我们
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-31 02:17

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表