@@ -15,7 +15,7 @@ const (
15
15
)
16
16
17
17
const (
18
- addMultiScript = `
18
+ bloomFilterAddMultiScript = `
19
19
local hashIterations = tonumber(ARGV[1])
20
20
local numElements = tonumber(#ARGV) - 1
21
21
local filterKey = KEYS[1]
48
48
return redis.call('INCRBY', counterKey, counter)
49
49
`
50
50
51
- existsMultiScript = `
51
+ bloomFilterExistsMultiScript = `
52
52
local hashIterations = tonumber(ARGV[1])
53
53
local numElements = tonumber(#ARGV) - 1
54
54
local filterKey = KEYS[1]
79
79
return result
80
80
`
81
81
82
- resetScript = `
82
+ bloomFilterResetScript = `
83
83
local filterKey = KEYS[1]
84
84
local counterKey = KEYS[2]
85
85
@@ -89,7 +89,7 @@ redis.call('SET', counterKey, 0)
89
89
return 1
90
90
`
91
91
92
- deleteScript = `
92
+ bloomFilterDeleteScript = `
93
93
local filterKey = KEYS[1]
94
94
local counterKey = KEYS[2]
95
95
@@ -179,14 +179,14 @@ func NewBloomFilter(
179
179
return nil , ErrFalsePositiveRateGreaterThanOne
180
180
}
181
181
182
- size := numberOfBits (expectedNumberOfItems , falsePositiveRate )
182
+ size := numberOfBloomFilterBits (expectedNumberOfItems , falsePositiveRate )
183
183
if size == 0 {
184
184
return nil , ErrBitsSizeZero
185
185
}
186
186
if size > maxSize {
187
187
return nil , ErrBitsSizeTooLarge
188
188
}
189
- hashIterations := numberOfHashFunctions (size , expectedNumberOfItems )
189
+ hashIterations := numberOfBloomFilterHashFunctions (size , expectedNumberOfItems )
190
190
191
191
// NOTE: https://redis.io/docs/reference/cluster-spec/#hash-tags
192
192
bfName := "{" + name + "}"
@@ -198,18 +198,18 @@ func NewBloomFilter(
198
198
hashIterations : hashIterations ,
199
199
hashIterationString : strconv .FormatUint (uint64 (hashIterations ), 10 ),
200
200
size : size ,
201
- addMultiScript : rueidis .NewLuaScript (addMultiScript ),
201
+ addMultiScript : rueidis .NewLuaScript (bloomFilterAddMultiScript ),
202
202
addMultiKeys : []string {bfName , counterName },
203
- existsMultiScript : rueidis .NewLuaScript (existsMultiScript ),
203
+ existsMultiScript : rueidis .NewLuaScript (bloomFilterExistsMultiScript ),
204
204
existsMultiKeys : []string {bfName },
205
205
}, nil
206
206
}
207
207
208
- func numberOfBits (n uint , r float64 ) uint {
208
+ func numberOfBloomFilterBits (n uint , r float64 ) uint {
209
209
return uint (math .Ceil (- float64 (n ) * math .Log (r ) / math .Pow (math .Log (2 ), 2 )))
210
210
}
211
211
212
- func numberOfHashFunctions (s uint , n uint ) uint {
212
+ func numberOfBloomFilterHashFunctions (s uint , n uint ) uint {
213
213
return uint (math .Round (float64 (s ) / float64 (n ) * math .Log (2 )))
214
214
}
215
215
@@ -229,11 +229,7 @@ func (c *bloomFilter) AddMulti(ctx context.Context, keys []string) error {
229
229
args = append (args , indexes ... )
230
230
231
231
resp := c .addMultiScript .Exec (ctx , c .client , c .addMultiKeys , args )
232
- if resp .Error () != nil {
233
- return resp .Error ()
234
- }
235
-
236
- return nil
232
+ return resp .Error ()
237
233
}
238
234
239
235
func (c * bloomFilter ) indexes (keys []string ) []string {
@@ -300,33 +296,25 @@ func (c *bloomFilter) Reset(ctx context.Context) error {
300
296
ctx ,
301
297
c .client .B ().
302
298
Eval ().
303
- Script (resetScript ).
299
+ Script (bloomFilterResetScript ).
304
300
Numkeys (2 ).
305
301
Key (c .name , c .counter ).
306
302
Build (),
307
303
)
308
- if resp .Error () != nil {
309
- return resp .Error ()
310
- }
311
-
312
- return nil
304
+ return resp .Error ()
313
305
}
314
306
315
307
func (c * bloomFilter ) Delete (ctx context.Context ) error {
316
308
resp := c .client .Do (
317
309
ctx ,
318
310
c .client .B ().
319
311
Eval ().
320
- Script (deleteScript ).
312
+ Script (bloomFilterDeleteScript ).
321
313
Numkeys (2 ).
322
314
Key (c .name , c .counter ).
323
315
Build (),
324
316
)
325
- if resp .Error () != nil {
326
- return resp .Error ()
327
- }
328
-
329
- return nil
317
+ return resp .Error ()
330
318
}
331
319
332
320
func (c * bloomFilter ) Count (ctx context.Context ) (uint , error ) {
0 commit comments