Redis存储密钥没有值

时间:2014-08-28 20:14:18

标签: redis ttl

使用redis 过期命令时,例如 SETEXP & TTL ,在某些情况下,根本不需要密钥来保存值,因为生存时间就这样行事。

但是,redis需要任何键都有值。

如果您不想阅读它,最合理的价值是什么?

4 个答案:

答案 0 :(得分:32)

谁说你应该用redis键存储任何东西?

空字符串""是redis密钥的完全有效值,它是最短的值:

> SET foo ""
OK
> GET foo
""
> BITCOUNT foo
(integer) 0

答案 1 :(得分:3)

我会存储一个字节的数据,这些数据也可以广义地解释为" truthy",例如ASCII字符1

答案 2 :(得分:0)

你自己序列化所有来自和来自redis的东西吗?如果是这样,你可以考虑使用一个哨兵值(如NONE常数等),这个值设置为' None'。

答案 3 :(得分:0)

我会避免使用import React, { Component} from 'react'; import './App.css'; class App extends Component { constructor(props) { super(props); this.state = { inputText: "", listItems: [] } this.handleChange = this.handleChange.bind(this); } handleChange(event){ if (event.target.value.length > 0){ var apiKey = process.env.REACT_APP_HERE_API_KEY; fetch("https://autocomplete.geocoder.ls.hereapi.com/6.2/suggest.json?apikey="+ apiKey +"&query="+event.target.value) .then(res => res.json()) .then(data => { data = data.suggestions; var lst = [] for (var i=0; i<data.length; i++) { if (data[i].matchLevel === "city") { var city = data[i].address.city; var state = data[i].address.state; var country = data[i].address.country; var finalString = city; if (state !== undefined) { finalString += ", "+state; } if (country !== undefined) { finalString += ", "+country; } if (i === data.length - 1) { lst.push(<li className="search-result-last-item" key={city}>{finalString}</li>) } else { lst.push(<li key={city}>{finalString}</li>) } } } this.setState({ listItems: lst }); }) } else { this.setState({ listItems: [] }) } } render() { return ( <div> <div className="search-box"> <input className="search-input" type="text" onChange={this.handleChange}></input> <ul className="search-result"> {this.state.listItems} </ul> </div> </div> ); } } export default App; 。简单的""怎么样?

0