小编Hun*_*hao的帖子

Redis的set命令是原子操作吗?

我正在尝试使用Redis的set命令来实现一个最简单的分布式锁组件,但我无法通过官方文档找到关于原子性的任何确切依据,Redis是否SET key value [EX seconds] [PX milliseconds] [NX|XX]命令进行原子操作?

locking distributed-computing redis

9
推荐指数
1
解决办法
2986
查看次数

luasocket.c:20:17: 错误: lua.h: 没有那个文件或目录

我正在为 Lua 安装 luasocket 模块,但收到以下错误消息:

[root@localhost local]# wget http://files.luaforge.net/releases/luasocket/luasocket/luasocket-2.0.2/luasocket-2.0.2.tar.gz
[root@localhost local]# tar zxvf luasocket-2.0.2.tar.gz
[root@localhost local]# cd luasocket-2.0.2
[root@localhost luasocket-2.0.2]# make && make install
cd src; make all
make[1]: Entering directory `/usr/local/luasocket-2.0.2/src'
gcc  -DLUASOCKET_DEBUG  -pedantic -Wall -O2 -fpic   -c -o luasocket.o luasocket.c
luasocket.c:20:17: error: lua.h: No such file or directory
luasocket.c:21:21: error: lauxlib.h: No such file or directory
luasocket.c:24:24: error: compat-5.1.h: No such file or directory
In file included from luasocket.c:30:
luasocket.h:30: error: expected ‘)’ before ‘*’ token
In file …
Run Code Online (Sandbox Code Playgroud)

c lua luasocket

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

如何在没有任何条件的情况下从MongoDB中的数组中提取所有元素

我有一个如下文档,我想通过一个语句拉出这个数组中的所有元素,没有任何条件.我能怎么做?

    "energy_sent" : [ 
        {
            "player_id" : "034010000093",
            "_id" : ObjectId("53675b8d251c20490d9679c6"),
            "time" : ISODate("2014-05-05T09:36:13.629Z"),
            "has_accepted" : 0,
            "energy_value" : 2
        }, 
        {
            "player_id" : "034010000094",
            "_id" : ObjectId("53675cfa251c20490d9679cc"),
            "time" : ISODate("2014-05-05T09:42:18.015Z"),
            "has_accepted" : 0,
            "energy_value" : 2
        }, 
        {
            "player_id" : "034010000116",
            "_id" : ObjectId("5367767889f8e3ee137dd239"),
            "time" : ISODate("2014-05-05T11:31:04.457Z"),
            "has_accepted" : 0,
            "energy_value" : 2
        }
    ]
Run Code Online (Sandbox Code Playgroud)

mongoose mongodb node.js mongodb-query

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

MySQL MIN()函数只返回一条记录

我有一个数据集:

+----+---------------+-------+-------------+---------------------+
| id | ip            | port  | point_count | create_time         |
+----+---------------+-------+-------------+---------------------+
|  1 | 192.168.20.28 | 10000 |           0 | 2013-03-29 14:29:14 |
|  2 | 0.0.0.0       | 10000 |           0 | 2013-03-29 14:29:32 |
|  3 | 0.0.0.1       | 11111 |           2 | 2013-03-29 14:29:38 |
|  4 | 0.0.0.5       | 11112 |           3 | 2013-03-29 14:29:44 |
+----+---------------+-------+-------------+---------------------+
4 rows in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

现在,我使用mysql的MIN()函数来获取记录:

mysql> SELECT s.id, s.ip, s.port, MIN(s.point_count) FROM origin_server …
Run Code Online (Sandbox Code Playgroud)

mysql sql select min

2
推荐指数
1
解决办法
3726
查看次数

JVM如何处理动态类

类定义存储在方法区域中,如Java虚拟机规范所述(Java®虚拟机规范Java SE 7版):

方法区域是在虚拟机启动时创建的.虽然方法区域在逻辑上是堆的一部分,但是简单的实现可能选择不垃圾收集或压缩它.

我们知道,像ASM,cglib,javassist,Hibernate和Spring框架这样的字节码工具正在使用它们.对于公共类文件,JVM加载并解析和初始化并最终使用它,我对JVM如何动态处理字节码工具生成的类感到困惑.我的问题是:

  1. 如果JVM加载,则将动态类解析并初始化为公共类文件?

  2. 它们也存储在方法区域中吗?

  3. JVM如何卸载和清理动态类定义以防止自身发生OutOfMemoryError?

java jvm bytecode

2
推荐指数
1
解决办法
486
查看次数

为什么无法在函数中获取shell脚本的参数计数

我很困惑为什么不能在函数中获取脚本的参数计数,有人可以帮助我吗?在此先感谢:)
test.sh

#!/bin/bash
check(){
    echo $#
    if [ $# -lt 2 ]; then
        echo "Argument missing"
        exit 1
    fi
}
echo $#
check
Run Code Online (Sandbox Code Playgroud)

跑:

./test.sh aa bb
Run Code Online (Sandbox Code Playgroud)

输出:

2
0
Run Code Online (Sandbox Code Playgroud)

linux bash shell

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

Shell 脚本 while 只循环一次

我想通过 ssh 获取所有服务器的时间,但我的脚本只循环一次然后退出,是什么原因?

服务器.txt

192.168.1.123
192.168.1.124
192.168.1.125
192.168.1.126
Run Code Online (Sandbox Code Playgroud)

获取时间.sh

#!/bin/bash
while read host
do
    ssh root@${host} date

done < "servers.txt"
Run Code Online (Sandbox Code Playgroud)

输出

Tue Feb  3 09:56:54 CST 2015
Run Code Online (Sandbox Code Playgroud)

linux bash shell

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