play-redis配置后,访问错误

分享 未结
0 0 6 102
大鱼 14天前发布
收藏 点赞

scala萌新,确切来说在代码方面也是新手,java学习的也一般般,跨行学习做的软件测试,现在做测试开发。学习gatling工具的时候,接触并学习了scala,现在尝试使用play实现一个web项目,集成redis的时候,出现了一点问题,由于底子偏弱,项目经验也不足。自己搞了两天了,实在是能力不够,唉,大家见笑了,错误是这样的... 希望有大神可以帮助解惑,大恩不言谢,感激不尽!!!

下面是根据官方文档和找到的一些文章摸索出来的配置

sbt引入

libraryDependencies += play.sbt.PlayImport.cacheApi
libraryDependencies += "com.github.karelcemus" %% "play-redis" % "2.6.1"

application.conf

play.cache {
    redis{
      database=0
      host=127.0.0.1
      port=6379
      password=123456
    }
}

play.modules {
  enabled += play.api.cache.redis.RedisCacheModule
}

HomeController

class HomeController @Inject()(cache: CacheApi , cc: ControllerComponents) extends AbstractController(cc){
   def index = Action{
     // …… 
      }  
  // other def () ……
       }




回帖
  • 13天前

    首先确认下版本是否兼容,play-redis 2.6.1仅适用于 play 2.8.x。或者直接下载play-redis提供的sample项目:https://github.com/KarelCemus/play-redis-samples

    0
  • 12天前

    根据社区群里大佬 FOREVER 提示,修改了play framework版本降至,最新版本的可能会存在兼容性问题,目前问题已经解决。

    当前版本 。play framework 2.7.4 。 play-redis版本 2.6.1。

    1
  • 10天前

    redis序列化不太好用总是失败,好不容易序列化成功了,发现取的时候取不出来,唉 ,资料 又很少,小白入门,有点难。 目前根据社区文档,切换MongoDB使用中... 也出现了取空的情况 ,郁闷中。 

    目前根据社区代码修改版本 ,play framework 2.6.13    MongoDB 0.3.1  继续研究中 ...

    1
  • 10天前

    加油~

    0
  • 9天前

    确认不是版本的问题 ,应该是 MongoDB查询返回类的事,不能说是问题了,其实是自己取值方式的问题。大写的尴尬 ...

    1. 集合查询返回类型为 Future[List[ClassName]]
    2. 单条数据查询返回类型为  Future[Option[ClassName]]

    使用最终经验总结,Future中的值可以使用map方法取出,之前认为是问题因为一直沿用了java的思路,想先toString一下,看下数据结构内容,在进行下一步操作。别人不知道怎么操作的,我代码战五渣,对不自己没见过的类型都这么搞... 但是Future,你直接toString,什么都拿不到,所以一直认为有问题。

    取值方法,可以使用map方法进行。

    如下参考:

    1. 集合    mongo.find[ClassName]().list().map {list => Ok(list.toString())}
    2. 单条数据   mongo.findById[ClassName](id).map(msg => Ok(msg.getOrElse("No find object").toString))

    另外发现, 当你使用OK做返回的时候,和 使用Ok是不一样的 。  注意'K'大小写不一样 ,源码如下。

    /** Generates a ‘200 OK’ result. */
    val Ok = new Status(OK)
    


    trait Status {
      ……
      val OK = 200
    }
    


    目前关于持久化的事终于告一段落,本来想使用redis的,因为本来只是想做一个抓包数据的存取,但是关于序列化的问题,甚是头痛,拐了一圈,最终绕到MongoDB,也算是解决了问题,真的很感谢社区对我的帮助,没有这个社区搞不好开始就跪了,感谢社区,感谢社区群中的各路大神给予的帮助,贴下QQ群号:  851236949。  也谢谢@小编 的鼓励! 爱你呦 么么哒!

    最终版本 play framework 2.7.4  MongoDB 0.3.1  。修改2.6.x版本的时候发现下载不到 ... 也幸好没下载到,否则我还会认为是版本的问题在纠结版本吧  - -!   战五渣的世界你们可能不懂  ... 

    1
  • 8天前

    0