使用redis 过期命令时,例如 SETEXP & TTL ,在某些情况下,根本不需要密钥来保存值,因为生存时间就这样行事。
但是,redis需要任何键都有值。
如果您不想阅读它,最合理的价值是什么?
答案 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