【问题标题】:Storing and getting boolean with Redis使用 Redis 存储和获取布尔值
【发布时间】:2019-09-22 16:10:04
【问题描述】:

我正在尝试使用 Redis 为我的切换功能存储和获取布尔值。

我使用的依赖是 redis-js 我可以使用 redis 的键设置值 false 但从 redis 获取值始终是 false

说先把key值存到Redis中

redis.set('myKey', 'false');

获取价值

let toggle = redis.get('myKey');
toggle = !toggle;

商店

redis.set('myKey', toggle);

获取

const checkStatus = redis.get('myKey');
return checkStatus;

如果执行该函数两次,我预计输出将是 true -> false

【问题讨论】:

    标签: javascript node.js redis


    【解决方案1】:

    为了使您的工具能够正常工作,您必须明确检查您获得的值是否等于字符串 'false'

    let toggle = redis.get('myKey');
    toggle = toogle === 'false'
    

    将字符串 'false' 转换为布尔结果为 true not false 并将其取反得到false

    来自 MDN

    所有其他值,包括任何对象或字符串"false",都会创建一个初始值为true的对象

    这是一个插图:

    const val = 'false'
    
    const toggle = !val; // this is equivalent to !Boolean(val)
    
    const bool = Boolean(val) // get boolean
    const negated = !bool // negate
    console.log('toggle: ', toggle);
    console.log('bool: ', bool); // Boolean("false") gives true
    console.log('negated: ', negated);

    【讨论】:

      【解决方案2】:

      你运行命令redis.get,返回值类型是String而不是Boolean。

      所以你不应该使用 !运算符,你可以比较'true'或'false',然后赋值

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-06-23
        • 1970-01-01
        • 2019-11-25
        • 2015-12-22
        • 2010-10-25
        • 2015-05-08
        • 2012-03-10
        相关资源
        最近更新 更多