Redis相关知识
一、能存储的基本类型

二、Redis优点
三、Redis相关命令
1、字符串
//设置键值对
set name "zhangsan"
//查找键值
get name
//删除键值对
del name
//判断键是否存在(存在则返回1,否则返回0)
exist name
//查找所有键值对
keys *
//删除所有键值对
flushall
//查看设置字段的过期时间
TTL name
//1)设置字段的过期时间
expire name 10
//2)设置字段的过期时间
setex name 10 "lisi"
//设置字段(如果键已存在,则返回0.否则返回1)
setnx name "wangwu"
2、列表
最后添加的元素会排在最前面
//添加列表
lpush letter a b c
//查找列表中的所有元素
lrange letter 0 -1
//添加到列表尾部
rpush letter f
//删除列表前面n个元素
lpop letter n
//删除列表后面n个元素
rpop letter n
//只保留指定范围(1,3)的元素
ltrim letter 1 3
3、 集合
//添加键值对
sadd course math
//查看键值内容
smembers course
//检查某个键值对是否存在
sismember course math
//删除某个键值对
srem course math
并:sunion
交:sinter
差:sdiff
4、有序集合
//创建有序集合
zadd result 680 qinghua 670 zheda 660 nanda
//查找有序集合
zrange result 0 -1
//查找某个值的分数
zscore result qinghua
//查找某个值的排名(从小到大排名)
zrank result qinghua
//查找某个值的排名(从大到小排名)
zrevrank result qinghua
5、哈希hash
//创建hash键值对
hset person name zhangsan
hset person age 22
//获取某个值
hget person name
//获取所有值
hgetall person
//删除某个值
hdel person age
//查找某个元素是否存在
hexists person name
//查找所有键
hkeys person
//查找hash长度
hlen person
6、发布订阅功能
终端打开输入:subscribe channelName,表示接受订阅channelName的消息
再创建另一个终端输入:publish channelName redis,表示向channelName订阅发送一个消息。
前一个终端结果显示出该订阅的消息。
7、消息队列Stream
//添加消息(*表示自动生成一个id)
xadd geekhour * course redis
xadd geekhour * course git
xadd geekhour * course docker
//显示消息的长度
xlen geekhour
//显示所有消息内容
xrange geekhour - +
//删除某个消息
xdel geekhour 消息id
//删除所有消息
xtrim geekhour maxlen 0
//手动添加id
xadd geekhour 1-0 course mysql //可能会报错,用一下flushall即可
//读取数据count 2表示读取两条消息,0表示从第一条消息开始读取,block表示如果没有消息,则阻塞1秒,然后返回nil $表示读取最新的消息
xread count 2 block 1000 streams geekhour 0
//创建消费组
xgroup create geekhour group1 0
//查看消费组信息
xinfo groups geekhour
8、地理空间
//创建地理位置信息
geoadd city 116.405285 39.904989 beijing
geoadd city 114.405285 22.547 shanghai
//查看某个位置的经度和纬度
geopos city beijing
//查看两个位置之间的直线距离m是米,km是千米
geodist city beijing shanghai m|km
9、基数查询
//创建一个基数(添加重复的不会添加成功)
pfadd course git docker redis
//查找数量
pfcount course
//合并两个基数(会消除重复的)
pfmerge result course course2
10、位图
//创建位图
setbit dianzan 0 1
setbit dianzan 1 0
//查找位图值
getbit dianzan 0
//像字符串那样赋值(八进制11110000)
set dianzan "\XF0"
//查询值为1的数量
bitcount dianzan
//查询第一次出现0的位置
bitpos dianzan 0
11、事务
事务中出现错误的命令也不会导致事务的执行失败,也不会导致事务中其他命令的失败,也就是说其他没有错误的命令照常执行。
//开启事务
multi
//执行事务
exec
12、持久化
save和bgsave命令用来保存当前快照