Redis基本指令集(简约版——更新)

本文详细介绍了Redis的基本指令集,包括启动服务器、客户端,set命令,数字类型字符串的算术操作,key查询,exists判断,del删除,List、Hash、Set的使用,Pub/Sub消息服务,主从复制的多种模式,以及布隆过滤器的配置和使用。内容涵盖Redis的核心功能和实际应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Redis基本指令集(简约版——更新)

1、启动Redis服务器:

cd redis-5.0.5/src
./redis-server

2、启动Redis客户端

cd redis-5.0.5/src
./redis-cli
ping(查看是否正常开启,正常返回pong)
//一下指令均是在客户端进行

3、set命令添加或覆盖一个字符串或数字类型

set key value:(设置单个值的方式)
	127.0.0.1:6379> set platform:info "字符串"
	//获取值
	127.0.0.1:6379> get platform:info
mget获取多个值:
	127.0.0.1:6379> mget platform:version platform:info

4、对于数字类型的字符串,有以下操作可以进行算术操作:

DECR/INCR:数字类型数据自减和自增
DECRBY/INCRBY:数字类型数据减去某个指定的整数或者增加一个指定的整数
INCRBYFLOAT:数字增加一个浮点数,负数表示减去
例如:
127.0.0.1:6379> set platform:version 1
127.0.0.1:6379> incrby platform:version 2

5、key指令查询Redis中所有的key

127.0.0.1:6379> keys platform:*

key后面可以用“*”或者“?”:

  • Platform:*,匹配"platform:" 开头的Key;
  • pl?tform,匹配platform或者pletform;
  • *,查询所有的keys;

6、exists判断key是否存在

127.0.0.1:6379> exists platform:info

返回1表示存在,0表示不存在

7、del命令删除Key-Value

127.0.0.1:6379> del platform:info

返回1表示删除成功,0表示失败

设定删除的时间,然后自动删除:

127.0.0.1:6379> expire platform 10
//ttl命令查看Key的存活时间
127.0.0.1:6379> ttl platform

8、Redis List(适合大数据量,要求插入速度极快的场景)

8.1、rpush,lpush,lrange

rpush将多个值放入list尾部,lpush则将多个值放在list头部,lrange能从左到右的心事指定范围的列表

127.0.0.1:6379> rpush platform:history "字符串" "字符串"
127.0.0.1:6379> lpush platform:history "字符串"
127.0.0.1:6379> lrange platform:history 0 2(表示从02的范围) 

8.2、rpop和lpop

rpop可以从列表尾部取出一个元素,lpop则会从列表的头部取出一个元素,llen可以返回List的长度

127.0.0.1:6379> rpop platform:history
127.0.0.1:6379> lpop platform:history
127.0.0.1:6379> llen platform:history

另一种取值的方式是Redis提供的带阻塞的pop命令,blpop或者brpop,这两个指令会在List为空的时候处于等待状态,直到列表有元素:

127.0.0.1:6379> blpop platform:history 0
响应的返回值:
	1"platform:history"
	2"字符串"
//语句中的0表示永久等待
返回值中有Key值(级名称),第二个为元素值;

9、Redis Hash

  • hset key field value,给指定的Key设置一个字段值,若值已存在,则覆盖,返回0表示失败,1表示成功;
  • hget key field,获取指定Key的field字段的值,若不存在,返回nil;
  • hexists key field,判断指定的Key的field字段是否存在,返回1表示存在,0表示不存在;
  • hkeys key,返回Key所指定的hash所有的字段名;
  • hgetall key,返回所有的字段名和字段值;
  • hdel key field[field],删除多个字段;
//现在假设系统的用户session会话保存到Redis中,Key值保存的格式为session:{sessionId},一下的sessionId假设为"1xac":
127.0.0.1:6379>hset session:1xac name good
(integer) 1
127.0.0.1:6379>hset session:1xac ip 127.0.0.1
(integer) 1
127.0.0.1:6379>hget session:1xac name
"good"
127.0.0.1:6379>hkeys session:1xac
1)"name"
2"ip"
127.0.0.1:6379>hgetall session:1xac
1)"name"
2)"good"
3)"ip"
4)"127.0.0.1"

Hash的字段支持递增计算:

  • hincby key field value,对Key指定的Hash数据中的field的值进行计算,增加整型value;
  • hincbyfloat key field value,对Key指定的Hash数据中的field的值进行计算,增加浮点数value;
127.0.0.1:6379> hset website access 0 
127.0.0.1:6379> hincrby website access 1
127.0.0.1:6379> hget website access

10、Set

Redis的Set除了元素的添加删除操作,还包含集合的并集,交集等,可用于统计访问网站所有的IP,或者统计网站作者共同的粉丝等应用,常见指令:

//添加元素
sadd key member[member..]
//删除元素
srem key member[member..]
//返回集合中的所有元素
smembers key
//返回两个集合共同的元素,key1和key2分别代表两个集合
sinter key1 key2
//将key2,key3的交集放到key1中
sinterstore key1 key2 key3
//返回一个合并后的集合
sunion key1 key2
//将key2,key3的并集放到key1中
sunionstore key1 key2 key3

当Set用于统计网站访问IP的时候,实例如下:

127.0.0.1:6379> sadd ip 192.168.0.1
(integer) 1
127.0.0.1:6379> sadd ip 192.168.0.2
(integer) 1
127.0.0.1:6379> sadd ip 192.168.0.1
(integer) 0
127.0.0.1:6379> smembers ip
1) "192.168.0.2"
2) "192.168.0.1"

Set用于查看两人共同好友,示例如下:

127.0.0.1:6379> sadd friends:guo xiaoming kobe
(integer) 2
127.0.0.1:6379> sadd friends:gu kobe lbj
(integer) 2
127.0.0.1:6379> sinterstore friends:guo-gu friends:guo friends:gu
(integer) 1
127.0.0.1:6379> smembers friends:guo-gu
1) "kobe"

Zset

在set基础上增加一个排序的功能,多了一个字段来标识位置

127.0.0.1:6379> ZADD mykey 1 one
(integer) 1
127.0.0.1:6379> ZADD mykey 2 two 3 three
(integer) 2
127.0.0.1:6379> ZRANGE mykey 0 -1
1) "one"
2) "two"
3) "three"
#######################################################
127.0.0.1:6379> ZRANGEBYSCORE mykey -inf +inf #-inf负无穷的含义,及升序排序
1) "one"
2) "two"
3) "three"

127.0.0.1:6379> ZREVRANGE mykey 0 -1 # 降序排序
1) "three"
2) "two"
3) "one"

127.0.0.1:6379> ZRANGEBYSCORE mykey -inf +inf withscores # 同时输出对应的value
1) "one"
2) "1"
3) "two"
4) "2"
5) "three"
6) "3"
127.0.0.1:6379> ZCARD mykey # 获取有序集合中的个数
(integer) 3


11、Pub/Sub

Redis提供了简单的消息服务,支持publish/subscribe.客户端可以订阅一个或多个频道(Channel),该行为称为subscribe,其他客户端向这些Channel发送消息,称为publish,订阅这些频道的客户端能接收到这些信息;publish/subscribe模式在SpringBoot中可以应用于事件通知,如配置文件更新,缓存更新等;

//subscribe订阅频道
127.0.0.1:6379> subscribe news
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "news"
3) (integer) 1

subscribe命令会返回一个数组结构数据,第一行固定的“subscribe”字符串,第二行为订阅号频道的名字,第三行为数字,表示频道总共有多少个订阅者;redis-cli使用了subscribe,将一直等待频道的消息并输出到屏幕,需要重新打开一个终端来执行publish消息,如下:

root@lakers1:~# cd redis-5.0.5/src
root@lakers1:~/redis-5.0.5/src# ./redis-cli
127.0.0.1:6379> publish news "hello"
(integer) 1
127.0.0.1:6379> publish news "world"
(integer) 1

在订阅者的终端上就将看到:

127.0.0.1:6379> subscribe news
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "news"
3) (integer) 1
1) "message"
2) "news"
3) "hello"
1) "message"
2) "news"
3) "world"

Redis还提供了订阅指定的模式,使用psubscribe命令:

127.0.0.1:6379> psubscribe news.*

支持的模式如下:

  • news.* 所有news.开头的频道;
  • news-? 订阅news-1、news-2频道;
  • news[123] 订阅news-1、news-2、news-3频道;

12、String

127.0.0.1:6379> get view
"0"
127.0.0.1:6379> incr view # 自动++
(integer) 1
127.0.0.1:6379> APPEND view "12" # 字符拼接
(integer) 3
127.0.0.1:6379> get view
"112"
127.0.0.1:6379> STRLEN view # 字符长度
(integer) 3
127.0.0.1:6379> INCR view
(integer) 113
127.0.0.1:6379> INCRBY view 2 # 增加 2
(integer) 115 
127.0.0.1:6379> DECR view # 自减 -1
(integer) 114
127.0.0.1:6379> DECRBY view 2 # 减少 2
(integer) 112
127.0.0.1:6379> GETRANGE view 0 1 # 截取某个字符串
"11"
127.0.0.1:6379> GETRANGE view 0 -1 # 获取整个字符串
"112"
127.0.0.1:6379> SETRANGE view 0 2 # 替换指定位置开始的字符串
(integer) 3
127.0.0.1:6379> get view
"212"
127.0.0.1:6379> setex key 30 "hello"
OK
127.0.0.1:6379> ttl key
(integer) 26
127.0.0.1:6379> get key
"hello"
127.0.0.1:6379> ttl key
(integer) -2
127.0.0.1:6379> setnx view 0 # 不存在该key则设置,成功返回1,失败返回0
(integer) 0
######################################################
127.0.0.1:6379> msetnx k1 v1 k2 v2
(integer) 1
127.0.0.1:6379> mget k1 k2
1) "v1"
2) "v2"
127.0.0.1:6379> msetnx k1 v1 k3 v3
(integer) 0
127.0.0.1:6379> mget k3 # 说明msetnx是一个原子操作,要么都成功,要么都失败
1) (nil)
#######################################################
# 对象
127.0.0.1:6379> mset user:1:name gp user:1:age 21
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "gp"
2) "21"

13、Geospatial地理位置

27.0.0.1:6379> GEOADD china:city 116.40 39.90 beijing
(integer) 1 # 添加地理位置
127.0.0.1:6379> GEOADD china:city 112.40 31.90 shanghai
(integer) 1
127.0.0.1:6379> GEOPOS china:city beijing shanghai # 获取城市的经纬度
1) 1) "116.39999896287918091"
   2) "39.90000009167092543"
2) 1) "112.39999920129776001"
   2) "31.89999934908474444"
127.0.0.1:6379> GEODIST china:city beijing shanghai km
"959.7309" # 获取两座城市的距离,已km为单位
127.0.0.1:6379> GEORADIUS china:city 110 30 1000 km
1) "shanghai" # 以给定的经纬度为中心,找出某一半径内的元素
127.0.0.1:6379> GEORADIUS china:city 110 30 1500 km withcoord
1) 1) "shanghai"
   2) 1) "112.39999920129776001"
      2) "31.89999934908474444"
2) 1) "beijing"
   2) 1) "116.39999896287918091"
      2) "39.90000009167092543"
127.0.0.1:6379> GEORADIUS china:city 110 30 1500 km withcoord count 1 # 限制查找的人数
1) 1) "shanghai"
   2) 1) "112.39999920129776001"
      2) "31.89999934908474444"
127.0.0.1:6379> GEORADIUSBYMEMBER china:city beijing 1000 km # 以某个元素为坐标,寻找附近的城市
1) "beijing"
2) "shanghai"
# Geospatial底层是由ZSET实现的
127.0.0.1:6379> ZRANGE china:city 0 -1
1) "shanghai"
2) "beijing"

14、Hyperloglog

基数的概念:

基数(一个集合不重复的元素个数);例如 A{1,3,5,7,7,8} 则基数 = 5

优点:

占用内存是固定的,2^64不同的元素的基数,只需要费12KB内存。

127.0.0.1:6379> PFADD team lakers sun rocket
(integer) 1
127.0.0.1:6379> PFCOUNT team
(integer) 3
127.0.0.1:6379> PFADD team2 clipper
(integer) 1
127.0.0.1:6379> PFADD team2 net
(integer) 1
127.0.0.1:6379> PFCOUNT team2
(integer) 2
127.0.0.1:6379> PFMERGE mergeTeam team team2
OK
127.0.0.1:6379> PFCOUNT mergeTeam
(integer) 5

15、Bitmaps

Bitmaps位图,都是操作二进制位来进行记录,就只有0和1两种状态

127.0.0.1:6379> SETBIT sign 0 0
(integer) 0
127.0.0.1:6379> SETBIT sign 1 0
(integer) 0
127.0.0.1:6379> SETBIT sign 2 1
(integer) 0
127.0.0.1:6379> SETBIT sign 3 0
(integer) 0
# 以上记录可以用于表示某个用户的打卡情况等等
127.0.0.1:6379> GETBIT sign 0 # 获取某一天的打卡情况
(integer) 0
127.0.0.1:6379> GETBIT sign 2
(integer) 1
127.0.0.1:6379> BITCOUNT sign # 统计情况
(integer) 1

16、设置密码

127.0.0.1:6379> config set requirepass 123456
OK
127.0.0.1:6379> config get requirepass
(error) NOAUTH Authentication required.
127.0.0.1:6379> auth 123456
OK
127.0.0.1:6379> config get requirepass
1) "requirepass"
2) "123456"

17、SpringBoot集成Redis

//配置application.properties
spring.redis.host=127.0.0.1
spring.redis.password=123456
spring.redis.port=6379
#最大连接数(0表示无限制
spring.redis.pool.max-active=8

测试集成是否成功:

@Controller
@RequestMapping("/strredis")
public class RedisStringController {

    @Autowired
    private StringRedisTemplate redisClient;

    @RequestMapping("/setget.html")
    public @ResponseBody String env(String para) {
        redisClient.opsForValue().set("testenv",para);
        String str = redisClient.opsForValue().get("testenv");
        return str;
    }
}

上述代码相当于Redis的set和get操作:

127.0.0.1:6379> set testenv 123
OK
127.0.0.1:6379> keys te*
1) "testenv"
127.0.0.1:6379> get testenv
"123"

18、事务篇

//开启事务
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> set k1 v1
QUEUED
127.0.0.1:6379> set k2 v2
QUEUED
127.0.0.1:6379> get k2
QUEUED
127.0.0.1:6379> set k4 v4
QUEUED
//结束事务
127.0.0.1:6379> EXEC
1) OK
2) OK
3) "v2"
4) OK
127.0.0.1:6379> MULTI
OK
127.0.0.1:6379> set k2 v3
QUEUED
//终端事务
127.0.0.1:6379> DISCARD
OK
127.0.0.1:6379> get k2
"v2"

19、主从复制

19.1、一主二仆

为了防止配置错误,先拷贝三份redis.conf,在进行改动配置

root@lakers1:~# cd redis-5.0.5/
root@lakers1:~# cp redis.conf redis6379.conf
root@lakers1:~/redis-5.0.5 cp redis.conf redis6380.conf
root@lakers1:~/redis-5.0.5 cp redis.conf redis6381.conf
//直接进入redis6379.conf(redis6380.conf,redis6381.conf)对下面的三个参数进行修改
root@lakers1:~/redis-5.0.5 vim redis6379.conf
logfile "6379.log"
dbfilename dump_6379.rdb
daemonize yes
root@lakers1:~/redis-5.0.5 vim redis6380.conf
pidfile /var/run/redis_6380.pid
port 6380
logfile "6380.log"
daemonize yes
dbfilename dump_6380.rdb
pidfile /var/run/redis_6380.pid
root@lakers1:~/redis-5.0.5 vim redis6381.conf
port 6381
pidfile /var/run/redis_6381.pid
logfile "6381.log"
daemonize yes
dbfilename dump_6381.rdb
pidfile /var/run/redis_6381.pid

/*在同一台虚拟机上模拟多台机器(也可以使用多台虚拟机)*/
//首先开辟三个窗口,分别进入redis的src目录,启动redis的服务(下面为个人的目录)
root@lakers1:~# cd redis-5.0.5/src
root@lakers1:~/redis-5.0.5/src# ./redis-server ../redis6379.conf
root@lakers1:~/redis-5.0.5/src# ./redis-cli -p 6379
127.0.0.1:6379> ping
PONG
//另外两个窗口也进行相似的操作,如下:
root@lakers1:~# cd redis-5.0.5/src
root@lakers1:~/redis-5.0.5/src# ./redis-server ../redis6380.conf
root@lakers1:~/redis-5.0.5/src# ./redis-cli -p 6380
127.0.0.1:6380> ping
PONG
---------------------------------------------------------------------------------------------------
root@lakers1:~# cd redis-5.0.5/src
root@lakers1:~/redis-5.0.5/src# ./redis-server ../redis6381.conf
root@lakers1:~/redis-5.0.5/src# ./redis-cli -p 6381
127.0.0.1:6381> ping
PONG
/*将6380和6381的两个端口作为从机,6379作为主机,分别在6380和6381窗口执行一下命令*/
127.0.0.1:6380> SLAVEOF 127.0.0.1 6379
OK
127.0.0.1:6380> info replication
# Replication
role:slave//此处已经表现出从机的性质
master_host:127.0.0.1
master_port:6379
master_link_status:up//此处正常应该为up,若为down,可能是防火墙没开放该端口
master_last_io_seconds_ago:8
master_sync_in_progress:0
slave_repl_offset:0
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:e009a04f186981bce5897ce60dda671a9201f40a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:0
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:0
--------------------------------------------------------------------------------------------------- 
/*在主机端口执行相关操作*/
127.0.0.1:6379> set k2 888
OK
/*从机端口执行以下操作*/
127.0.0.1:6380> get k2
"888"//表明主从复制成功

当主机宕机后,重新开启,两个从机会继续和主机形成一主二仆的关系;

而当从机宕机后重新启动,需重新连接主机,及执行slaveof 127.0.0.1 6379才能成为从机

19.2、薪火相传

相当于接力续传,前一个slave可以作为后一个的master

示例如下:

//在6381端口执行一下语句
127.0.0.1:6381> SLAVEOF 127.0.0.1 6380
OK
---------------------------------------------------------------------------------------------------
//此时主机6379状态如下
127.0.0.1:6379> info replication
# Replication
role:master
connected_slaves:1//连接数剩下1
slave0:ip=127.0.0.1,port=6380,state=online,offset=3385,lag=1
master_replid:e009a04f186981bce5897ce60dda671a9201f40a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:3385
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:3385
---------------------------------------------------------------------------------------------------
//6380端口的状态
127.0.0.1:6380> info replication
# Replication
role:slave
master_host:127.0.0.1
master_port:6379
master_link_status:up
master_last_io_seconds_ago:3
master_sync_in_progress:0
slave_repl_offset:3413
slave_priority:100
slave_read_only:1
connected_slaves:1//连接的从机数量为1
slave0:ip=127.0.0.1,port=6381,state=online,offset=3413,lag=0
master_replid:e009a04f186981bce5897ce60dda671a9201f40a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:3413
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:3413 
---------------------------------------------------------------------------------------------------
127.0.0.1:6379> set k9 v9
OK
127.0.0.1:6380> get k9
"v9"
127.0.0.1:6381> get k9
"v9"
/*数据从6379------>6380------>6381*/

19.3、反客为主
//让6381重新成为6379的从机
127.0.0.1:6381> SLAVEOF 127.0.0.1 6379
OK
---------------------------------------------------------------------------------------------------
//模拟主机宕机
127.0.0.1:6379> SHUTDOWN
not connected> exit
root@lakers1:~/redis-5.0.5/src# 
---------------------------------------------------------------------------------------------------
//在6380执行的操作
127.0.0.1:6380> info replication
# Replication
role:slave//此时6380仍为从机,等待主机的恢复
master_host:127.0.0.1
master_port:6379
master_link_status:down
master_last_io_seconds_ago:-1
master_sync_in_progress:0
slave_repl_offset:4394
master_link_down_since_seconds:23
slave_priority:100
slave_read_only:1
connected_slaves:0
master_replid:e009a04f186981bce5897ce60dda671a9201f40a
master_replid2:0000000000000000000000000000000000000000
master_repl_offset:4394
second_repl_offset:-1
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:4394
//直接成为主机
127.0.0.1:6380> SLAVEOF no one
OK
127.0.0.1:6380> info replication
# Replication
role:master//状态已经改为master
connected_slaves:0
master_replid:79701d5bdca81c37afce59649b308cca652153b5
master_replid2:e009a04f186981bce5897ce60dda671a9201f40a
master_repl_offset:4394
second_repl_offset:4395
repl_backlog_active:1
repl_backlog_size:1048576
repl_backlog_first_byte_offset:1
repl_backlog_histlen:4394
---------------------------------------------------------------------------------------------------
//6381端口更换主人
127.0.0.1:6381> SLAVEOF 127.0.0.1 6380
OK

19.4、哨兵模式

哨兵模式相当于自动的反客为主,能后台监控主机是否故障,如果故障根据投票数自动将从库转换为主库。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-t8lo35M6-1596418991117)(E:\后台学习资料\Redis\Redis\微信截图_20200731150147.png)]

哨兵模式实现:

目前是一主二从的状态,配置步骤:

配置哨兵配置文件sentinel.conf并开启哨兵模式

# sentinel monitor 被监控的名称 host port 1
sentinel monitor myredis 127.0.0.1 6379 1
# 开启哨兵模式
[root@izuf651uvti0zfpng91vp5z src]# ./redis-sentinel ../sentinel.conf 

优点:

1、哨兵集群,基于主从复制模式,所有的主从配置优点都有;

2、主从切换,故障可以自动转移,系统的可用性更好;

缺点:

1、不好在线扩容,集群容量一旦达到上限,扩容将比较麻烦;

20、布隆过滤器的使用

布隆过滤器概念以及原理参考:

https://blog.youkuaiyun.com/huanghanqian/article/details/103179645

1、Redis添加布隆过滤器插件

# 来到默认的Redis目录下
cd /www/server/redis
mkdir module && cd module

yum -y install git
# 克隆下过滤器代码
git clone https://github.com/RedisLabsModules/redisbloom.git

# 进入下载后的代码目录并编译,之后会得到一个redisbloom.so文件
cd redisbloom
make

# 去到redis.conf文件中添加配置
vim /www/server/redis/redis.conf
# 添加配置
# load BloomFilter
loadmodule /www/server/redis/module/redisbloom/redisbloom.so

2、重启redis加载配置文件

# 通过客户端直接关闭服务器
127.0.0.1:6379> SHUTDOWN
not connected> exit

# 重启redis
cd /www/server/redis
./redis-server ../redis.conf

# 客户端重新连接
[root@izuf651uvti0zfpng91vp5z src]# ./redis-cli
127.0.0.1:6379> ping
PONG
127.0.0.1:6379> bf.add url http:jaychen.cc
(integer) 1

3、布隆过滤器基本使用

redis 布隆过滤器主要就两个命令:

  • bf.add 添加元素到布隆过滤器中:bf.add urls https://host:ip
  • bf.exists 判断某个元素是否在过滤器中:bf.exists urls https://host:ip

布隆过滤器存在误判的情况,在 redis 中有两个值决定布隆过滤器的准确率:

  • error_rate:允许布隆过滤器的错误率,这个值越低过滤器的位数组的大小越大,占用空间也就越大。
  • initial_size:布隆过滤器可以储存的元素个数,当实际存储的元素个数超过这个值之后,过滤器的准确率会下降。

redis 中有一个命令可以来设置这两个值:

bf.reserve urls 0.01 100

三个参数的含义:

  • 第一个值是过滤器的名字。

  • 第二个值为 error_rate 的值。

  • 第三个值为 initial_size 的值。

    如果不使用 bf.reserve,默认的error_rate是 0.01,默认的initial_size是 100。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值