一.Redis入门
- Redis是一款基于键值对的NoSQL(关系型数据库之外的数据库的统称Not Only SQL)数据库,它的值支持多种数据结构。<key,value>
value类型:字符串(strings)、哈希(hashes)、列表(lists)、集合(sets)、有序集合(sorted sets)等。 - Redis将所有的数据都存放在内存中,所以它的读写性能十分惊人。
同时,Redis还可以将内存中的数据以快照或日志的形式保存到硬盘上,以保证数据的安全性。 - 快照:bin的形式;直接保存到硬盘中;但存在阻塞的情况。
- 日志:AOF(Append only file),每执行一个命令就存储下来;实时追加;在从硬盘向内存中恢复较慢,要重新执行。
- Redis典型的应用场景包括:短时间内访问频繁的情况。
- 缓存、排行榜、
- 计数器:帖子浏览量
- 社交网络:点赞、关注
- 消息队列:可满足消息队列的基本需求,但不是专业的
- 核心使用:见其官网Commands
- https://redis.io https://github.com/microsoftarchive/redis
基本命令
进入客户端:
redis-cli
内置了16个库,分别为0-15,切换方法为:(默认为0库)
select 1
清空库:
flushdb
String类型:
set test:count 1
Redis提倡两个单词之间以:连接
自增、自减:
incr test:count
decr test:count
哈希HashSet
hset test:user id 1
创建HashSet test:user集合,向里面添加键值对<id,1>
hset test:user username zhangsan
取值:
hget test:user id
List:
横向的容器,支持头插(左插)、尾插(右插),头取,尾取。
可以模拟:队列、栈。
从左侧存入
lpush test:ids 101 102 103
内存: 103 102 101
list的长度
llen test:ids
取列表中的第二个元素
lindex test:ids 2
取list中[0-2]的元素
1range test:ids 0 2
右侧弹出一个元素
rpop test:ids
集合:
无序、无重复元素
加入到集合中
sadd test:teachers aaa bbb ccc ddd eee
查看元素个数
scard test:teachers
随机弹出一个元素,用于抽奖
spop test:teachers
查看集合中所有元素
smembers test:teachers
有序集合
给每一个元素附加了 分数,按照分数从小到大排序(第0,第1)
创建有序集合test:students 其中aaa元素的分数为10(第0名,由小到大排序)
zadd test:students 10 aaa 20 bbb 30 ccc 40 ddd 50 eee
元素个数
zcard test:students
查看分数
zscore test:students ccc
查看排名
zrank test:students ccc
分数排序为【0-2】的
zrange test:students 0 2
全局命令
查看所有的键
keys *
查看所有以test开头的键
keys test*
查看类型
type test:user
判断test:user是否存在
exists test:user
删除元素
del test:user
此元素10s后过期,用于验证码过期之类的
expire test:students 10