mirror of
https://bitbucket.org/s_l_teichmann/mtsatellite
synced 2024-12-23 16:50:18 +01:00
Opitimized writing redis hspatial queries a bit.
This commit is contained in:
parent
b0a42867d8
commit
3c2ab551f1
@ -30,16 +30,18 @@ func (client *RedisClient) Close() error {
|
|||||||
return client.conn.Close()
|
return client.conn.Close()
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *RedisClient) writeArray(size int) (err error) {
|
|
||||||
_, err = client.conn.Write([]byte(fmt.Sprintf("*%d\r\n", size)))
|
|
||||||
return
|
|
||||||
}
|
|
||||||
|
|
||||||
func redisLength(prefix byte, s int) []byte {
|
func redisLength(prefix byte, s int) []byte {
|
||||||
buf := append(make([]byte, 0, 16), prefix)
|
buf := append(make([]byte, 0, 16), prefix)
|
||||||
return append(strconv.AppendInt(buf, int64(s), 10), '\r', '\n')
|
return append(strconv.AppendInt(buf, int64(s), 10), '\r', '\n')
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var (
|
||||||
|
writeArray4 = []byte("*4\r\n")
|
||||||
|
hspatial = []byte("HSPATIAL")
|
||||||
|
nl = []byte("\r\n")
|
||||||
|
ignore = []byte("IGNORE")
|
||||||
|
)
|
||||||
|
|
||||||
func (client *RedisClient) writeBulkString(data []byte) (err error) {
|
func (client *RedisClient) writeBulkString(data []byte) (err error) {
|
||||||
if _, err = client.conn.Write(redisLength('$', len(data))); err != nil {
|
if _, err = client.conn.Write(redisLength('$', len(data))); err != nil {
|
||||||
return
|
return
|
||||||
@ -47,18 +49,18 @@ func (client *RedisClient) writeBulkString(data []byte) (err error) {
|
|||||||
if _, err = client.conn.Write(data); err != nil {
|
if _, err = client.conn.Write(data); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
_, err = client.conn.Write([]byte("\r\n"))
|
_, err = client.conn.Write(nl)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
func (client *RedisClient) writeHSpatial(p1, p2 int64) (err error) {
|
func (client *RedisClient) writeHSpatial(p1, p2 int64) (err error) {
|
||||||
if err = client.writeArray(4); err != nil {
|
if _, err = client.conn.Write(writeArray4); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if err = client.writeBulkString([]byte("HSPATIAL")); err != nil {
|
if err = client.writeBulkString(hspatial); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if err = client.writeBulkString([]byte("IGNORE")); err != nil {
|
if err = client.writeBulkString(ignore); err != nil {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if err = client.writeBulkString(StringToBytes(p1)); err != nil {
|
if err = client.writeBulkString(StringToBytes(p1)); err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user