redis使用介绍

2025-07-23 22:52:00
admin
原创 313
摘要:redis使用介绍

一、redis使用介绍

1、版本下载:https://github.com/redis/redis/releases

2、版本下载:https://github.com/redis-windows/redis-windows/releases

3、使用帮助:https://redis.io/docs/latest/develop/get-started

4、命令帮助:https://redis.io/docs/latest/commands

5、jedis帮助文档:https://redis.github.io/jedis


redis使用详解:

1、使用单线程处理命令,因为是操作内存,所以效率非常高;

2、采用键值对存储数据,健是字符串,值支持多种数据类型;

3、值支持的数据类型:字符串、哈希、列表、集合、有序集合;

4、字符串支持二进制,包括健和值,允许使用冒号、横杠、点、花括号

5、列表可以用于实现任务队列,实现分布式任务处理;

6、有序集合需要设置分数,非常适合实现排行榜功能;

7、bitmap非常节约内存,适合用户签到和权限管理等场景;


redis运行:

1、编译:make

2、运行:./redis-server

3、连接:./redis-cli


redis常用命令:

1、info,返回服务端信息;

2、info keyspace,返回所有数据库的健信息;

3、client info,返回客户端信息,包含当前操作的数据库;

4、select index,切换当前操作的数据库

5、dbsize, 返回当前数据库的健数量;

6、flushdb,同步清除当前数据库;

7、flushall,同步清除所有数据库;


redis扫描key:

1、keys *,返回当前数据库的所有key;

2、scan cursor,迭代当前数据库的所有key,游标0开始迭代,到游标0表示结束;

3、match和type选项应用在查询数据库之后,导致迭代经常返回0个元素;

4、扫描可能返回重复数据,可能不返回迭代过程中删除的数据;

5、数据量较小时使用keys,数据量较大时使用scan;


redis配置管理

1、config get databases,返回数据库数量,默认16个,默认使用0

2、config get proto-max-bulk-len,字符串最大长度,默认512M;

3、config get *len,返回长度相关配置;


二、常用数据类型

字符串操作:

1、set mykey "myvalue",设置键值对;
2、set mykey "myvalue" ex 60,设置键值对,60秒过期;
3、set mykey "myvalue" keepttl,设置键值对,不修改过期时间;

4、set mykey "myvalue" nx ex 60,键值对不存在时,设置键值对
5、set mykey "myvalue" get,设置键值对,返回上一次值;
6、get mykey,查询设置值;
7、ttl mykey,查询过期时间;

8、exists mykey,是否存在键值对
9、del mykey,删除健值对;


整数操作:

1、redis底层不支持整数,整数操作实际使用字符串;

2、整数操作最大范围是64位有符号整数,等价于long;

3、incr mykey,整数自增,健不存在时,初始值0

4、decr mykey,整数自减,健不存在时,初始值0

5、expire mykey seconds,设置过期时间,不推荐使用;


哈希操作:

1、hset mymap name feinen,设置元素;

2、hget mymap name,查询元素;

3、hdel mymap name,删除元素;

4、hgetall myapp,查询所有元素;

5、hkeys mymap,查询所有key;
6、hvals mymap,查询所有value;

7、hexpire mymap 60 fields 2 name age,设置过期时间;
8、httl mymap fields 2 name age,查询过期时间;


哈希操作示例:

hset mymap name feinen
hset mymap age 21
hset mymap sex boy
hget mymap name
hget mymap age
hget mymap sex

hdel mymap sex
hkeys mymap
hvals mymap


列表操作:

1、lpush mylist people,往列表头部增加元素;

2、rpush mylist people,往列表尾部增加元素;

3、blpop mylist timeout,阻塞从列表头部删除元素,0表示不超时;

4、brpop mylist timeout,阻塞从列表尾部删除元素,0表示不超时;

5、lpop mylist,从列表头部删除元素;

6、rpop mylist,从列表尾部删除元素;

7、lrange mylist 0 -1,查询所有元素;

8、llen mylist,查询列表长度;


列表操作示例:

del mylist
lpush mylist people1
lpush mylist people2
lpush mylist people3
rpush mylist people1
rpush mylist people2
rpush mylist people3
lrange mylist 0 -1
lpop mylist
llen mylist


三、集合操作

集合操作:

1、sadd myset elem,增加元素;

2、srem myset elem,删除元素;

3、smembers myset,查询所有元素;

4、scard myset,查询集合元素数量;

5、sinter myset myset2,集合交集;
6、sunion myset myset2,集合并集;
7、sdiff myset myset2,集合差集;


集合操作示例:

del myset 
sadd myset name
sadd myset age
sadd myset sex
srem myset sex
smembers myset
scard myset


有序集合操作:

1、先根据分数排序,分数一样时,再根据元素排序;

2、zadd orderSet score elem,增加元素;

3、zrem orderSet elem,删除元素;

4、zscore orderSet elem,查询元素分数;

5、zrange orderSet 0 -1 withscores,查询所有元素;

6、zcard orderSet,查询集合元素数量;


有序集合操作示例:

del orderSet
zadd orderSet 10 name
zadd orderSet 10 age
zadd orderSet 10 sex
zrem orderSet sex
zscore orderSet sex
zrange orderSet 0 -1 withscores
zcard orderSet


四、比特位操作

bitmap操作:

1、底层实际使用字符串,索引范围从0到2^32-1,最大512M;

2、按照最大设置索引分配内存,索引变大会导致重新分配内存

3、setbit mybitmap 1000 1,设置比特位;
4、getbit mybitmap 1000,查询比特位;

5、bitcount mybitmap 0 1000 bit,统计置一比特位数量;

6、bitpos mybitmap 1 0 1000 bit,查找第一个置一比特位的位置;

7、bitop and destkey key1 key2,比特位运算;

8、bitop not destkey key,比特位运算;


bloomfilter原理:

1、下载布隆过滤器https://redis.io/downloads

2、支持布隆过滤器:./redis-server --loadmodule ./redisbloom.so

3、概率型数据结构,非常节约内存,用于高效插入和查询某个元素是否存在;

4、0.01错误率,要求7个哈希函数,每个元素消耗9.585比特,普通场景使用;

5、0.001错误率,要求10个哈希函数,每个元素消耗14.378比特,高精度场景使用;

6、默认包含1个过滤器,容量用完之后,会新建一个过滤器,默认按上一个过滤器2倍扩容;


bloomfilter操作:

1、bf.reserve mybf 0.01 1000,初始化布隆过滤器;

2、bf.add mybf elem,往过滤器增加一个元素;

3、bf.exists mybf elem,查询元素是否存在;

4、bf.card mybf,查询元素数量,比特置位才会计数;

5、bf.info mybf,查询布隆过滤器信息;

发表评论
评论通过审核之后才会显示。