一:redis介绍
redis是非关系型数据库,它按照键值对的方式进行数据的存储。
1.1:redis特点
- 速度快
- 支持数据持久化
- 支持多种数据结构类型
- 支持主从复制,分布式系统
1.2:redis应用场景
- 缓存系统
- 排行榜
- 计数器
- 存储社交消息
- 消息队列
1.3:redis的数据类型
- 字符串(string)
- 哈希(Hash)
- 列表(List)
- 无序集合(Set)
- 有序集合(Sort Set)
1.4:下载安装redis
第一步:点击下面地址进入github下载
https://github.com/MicrosoftArchive/redis/releases
第二步:点击图片的msi文件下载到本地
第三步:一路点next,注意到下面这个步骤时,记得点击add,自动配置系统环境变量
第四步:最后点击finish安装成功,找到自己的redis的安装路径,打开下面的exe就可以连接到数据库了
第五步:打开数据库的第二种方式,请看下面的1.5演示
1.5:如何在windows上连接redis?
-
打开cmd,输入下面的指令,连接到redis数据库
redis-cli -h 127.0.0.1 -p 6379
-
redis默认有15个数据库,编号是0-15,通过下列指令选择对用数据库
select 编号
二:全局指令(任何数据类型下都可操作)
2.1:查看当前数据库所有的key
keys *
2.2:情况当前数据库
flushdb
2.3:情况所有数据库
flushall
2.4:获取当前数据库的key的个数
dbsize
2.5:查看value数据类型
type key
2.6:判读key时否存在
exists key
2.7:设置key的过期时间
expire key seconds
2.8:查看过期时间
ttl key
2.9:取消过期时间
persist key
三:redis的字符串操作
3.1:字符串的增删改查
//当设置的key不存在时,自动添加,反之则修改当前key对应的value
set 你的key 你的value
//数据的查找
get 你的key
//数据的删除
del 你的key
3.2:字符串高级操作
3.2.1:字符串的高级添加
//当设置的key存在时,不进行任何操作,当key不存在时,进行添加
setnx 你的key 你的value
//只有key存在时,对值进行更新操作,反之,不进行任何操作
set 你的key 你的value xx
3.2.2:字符串的批量处理
//批量添加
mset 你的key1 你的value1 你的key2 你的value2
//批量的查询
mget 你的key1 你的key2 你的keyn
3.2.3:字符串的其它操作
//设置新值同时,返回旧的值
getset 你的key 你的value
//给旧的值末尾追加数据
append key 你的数据
//计算key对应值的字符串长度
strlen key
//获取指定下标的字符串值
getrange key 开始位置 结束位置
//设置指定下标的字符串的值
setrange key 下标 你的值
//字符串值自增1
incr 你的key
//字符串值自减1
decr 你的key
//字符串值增加指定数目
incrby 你的key 数目
//字符串值减少指定数目
decrby 你的key 数目
//字符串值增加或减少指定数目,小数,负数代表减少
incrbyfloat 你的key 数目
四:哈希类型(key对应的是一个对象)
4.0:哈希类型结构
key 属性1 值1
4.1:数据添加
//类比字符串,不存在添加,存在则覆盖
hset user name dzp
4.2:属性和key删除
//删除对应属性
hdel user name
//删除对应key
del user
4.3:属性查询
hget user name
4.4:属性批量添加和查询
//批量的添加
hmset user name dzp age 66
//批量的查询
hmget user name age
4.5:查询key保存属性的个数
hlen key
4.6:判读key是否保存某个属性
hexists key filed
4.7:查询key下的所有属性
hkeys key
4.8:查询key下所有属性对应的值
hvals key
4.9:查询key下所有属性和值
hgetall key
五:List(集合)
5.1:数据的添加
//从左边依次添加
lpush arr1 1 2 3 4 5
//从右边依次添加
rpush arr1 1 2 3 4 5
5.2:数据的查询
//begin指开始的位置,end是结束位置,end如果是-1,代表查询到末尾
lrange arr1 begin end
//查询指定索引下的数据,index是负数代表从后往前查找
lindex arr1 index
5.3:数据的修改
lset arr1 index value
5.4:数据的删除
//删除最左边元素
lpop key
//删除最右边元素
rpop key
//删除指定元素指定次数
//count>0:从表头开始找,删除count个值
//count<0:从表尾开始找,删除count绝对值个数的值
//count=0:删除表所有value的值
lrem key value count
5.5:列表的截取
//截取列表指范围,返回新列表
ltrim key strat end
5.6:获取列表元素长度
llen key
5.7:指定元素前面或者后面插入元素
//给指定元素的前面或者后面插入数据
linsert key before/after oldValue newValue
六:Set集合(无序)
set集合中不能出现重复的数据
6.1:集合的添加
sadd key value1 value2 valuen
6.2:集合的查询
//获取集合所有数据
smembers key
//随机返回集合的N个元素
srandmember key N
6.3:集合的删除
//随机删除N个元素
spop key N
//删除指定元素
srem key value1 value2 value3...
6.4:统计集合元素个数
scard key
6.5:判读集合是否存在某个元素
sismember key value
6.6:集合的交集,并集,差集
//集合的交集
sinter key1 key2
//集合的并集
sunion key1 key2
//集合的差集
sdiff key1 key2
七:集合(有序)
有序集合是通过权重将集合数据进行自动排序
7.1:数据的添加
zadd key 权值1 value1 权值2 value2
7.2:数据的查询
//查询指定排名的元素
zrange key start end
//查询指定权重范围内的数据
zrangebyscore key 权值1 权值2
//查询某个元素的权值
zscore key value
//查询指定权值内元素的个数
zcount key 权值1 权值2
7.3:元素个数
zcard key
7.4:删除元素
//删除指定的元素
zrem key value
//删除指定排名内的所有元素
zremrangebyrank key start end
//删除指定权值内的所有元素
zremrangebyscore key 权值1 权值2
八:发布订阅
发布订阅有三个角色,发布者,频道,订阅者。其中发布者将信息发布到频到里面,订阅者可以在频到里面收到消息。
//订阅频道
subscribe 频道地址
//发布消息
publish 频到地址 消息
//退订频到
unsubscribe 频道地址