小编Cla*_*imp的帖子

个性化提要的缓存策略

假设用户可以订阅其他用户的帖子、标签或他可能想要的任何其他类似标准。

在他的提要上,应用程序返回用户之间相同的“主要提要”,并且还根据他的“订阅”条件提供提要项目(提要通过 API 提供)。

提要数据是一种实体(帖子)。并且该提要处于无限滚动(分页)状态,这增加了额外的复杂性。

如果用户之间的提要相同,缓存是微不足道的,但在个性化提要的情况下,我想不出最好的方法是什么。

每个“页面”都按日期范围(特定日期)偏移。

我能想到的方法之一是:

“相同提要”部分按日期键(某些键表示日期范围)缓存。

个性化的帖子提要项目将单独缓存。然后我根据标准保留帖子 ID 的数组,例如创作用户,或者它被分配给喜欢的标签(用户#1:[10,15,23,64 ...],标签#FOO:[1,2,5 ,10 ...]),并按日期范围分隔它们(根据它们适合的分页部分),然后通过mget/ getMultiby Redis 或 Memcahed 的 id获取这些帖子并返回组合结果。

但是这种方法对我来说有点“不正确”,因为它太复杂了。或者,是否使用微调的 DB(假设在 RAM 中运行,或在其中完全缓冲)而不进行缓存 - 在这种情况下可行(渲染/序列化时间并不重要,因为我几乎将其传递给客户端)?

我寻求平台/缓存层不可知的一般策略建议。

database memcached caching redis

5
推荐指数
1
解决办法
1241
查看次数

Crystal lang,是否可以在不等待GC的情况下显式处理(自由)实例(对象)?

标题说明了一切.也许有一种方法可以被称为def destruct; delete self;end

crystal-lang

4
推荐指数
1
解决办法
184
查看次数

通过Eclipse上的gradle设置Kotlin

努力让Kotlin在日食上运行。

我已经开始了新的毕业设计。按照kotlin网站上的规定添加了依赖性。

构建过程没有错误。

我已经在src / java / main下创建了“ main.kt”文件,其内容如下:

fun main(args: Array<String>) {
    println("foo")
}
Run Code Online (Sandbox Code Playgroud)

但是,我有两个问题:1.来自kotlin的任何内容,例如println突出显示为“未解决的参考”。2.我无法运行程序- Error: Could not find or load main class MainKt(右键单击以“ kotlin应用程序”运行的main.kr)

如果我创建“新的Kotlin项目”,则一切正常。

我的Gradle构建脚本:

plugins {
    id "org.jetbrains.kotlin.jvm" version "1.1.2-2"
}

repositories {

    jcenter()

    mavenCentral()
}


dependencies {

    //api 'org.apache.commons:commons-math3:3.6.1'


    implementation 'com.google.guava:guava:21.0'


    testImplementation 'junit:junit:4.12'

    compile "org.jetbrains.kotlin:kotlin-stdlib:1.1.2-2"
    compile "org.jetbrains.kotlin:kotlin-stdlib-jre8"

    compile "org.jetbrains.kotlin:kotlin-reflect"
    testCompile "org.jetbrains.kotlin:kotlin-test"
    testCompile "org.jetbrains.kotlin:kotlin-test-junit"

}

sourceSets {
    main.java.srcDirs = ['src/main/java']
    main.kotlin.srcDirs = ['src/main/java', 'src/main/kotlin']
    main.resources.srcDirs = ['src/main/resources']
}
Run Code Online (Sandbox Code Playgroud)

我做错什么了?

如果有帮助,我对Java的知识为零,所以我可能犯了一些小错误。

更新:

安装了一个Spring插件并通过它生成了一个新的Web应用程序,包括gradle。但是科特林在那儿的举止也出乎意料。

起初我无法按原样运行它, …

eclipse gradle kotlin

4
推荐指数
1
解决办法
2244
查看次数

Ruby array eval作为方法的参数

我们有方法:

def sum(x, y, z)
 x + y + z
end
Run Code Online (Sandbox Code Playgroud)

和数组

arr = [1,2,3]
Run Code Online (Sandbox Code Playgroud)

如何将数组传递给sum方法?其实我需要这样的东西:

pseudo
sum(arr.each {|i| i})
Run Code Online (Sandbox Code Playgroud)

不改变方法,如果sum接受splat它就能工作,所以请不要提供总和(arr [0],arr [1],arr [2])

ruby ruby-on-rails

0
推荐指数
1
解决办法
271
查看次数