redis介绍
- redis是key-value型NoSQL数据库
- redis将数据储存在内存中,同时也能持久化到磁盘
- redis常用于缓存,利用内存的高效率提高程序的处理速度
redis特点
- 速度快
- 广泛的语言支持
- 持久化
- rdb全量的备份
- aof日志的更新
- 多种数据结构
- 主从复制
- 分布式与高可用
redis通用命令
配置项 | 实例 | 说明 |
---|---|---|
select | select 0 | 选择。号数据库 |
set | set name lily | 设置 |
get | get hello | 获取key=hello结果 |
keys | keys he* | 根据Pattenrn表达式查询符合条件的Key |
dbsize | dbsize | 返回key的总数 |
exists | exists a | 检查key=a是否存在 |
del | del a | 删除key=hello的数据 |
expire | expire hello 20 | 设置key=hello 20秒后过期 |
ttl | dbsize | 查看key=a的过期剩余时间 |
redis常用基本配置
配置项 | 实例 | 说明 |
---|---|---|
daemonize | daemonize yes | 是否启用后台允许,默认no |
port | port 6379 | 是否启用后台允许,默认no |
logfile | logfile 日志文件 | 设置日志文件 |
dir | dir 数据库文件目录 | 设置数据库文件储存目录 |
requirepass | requirepass 12345 | 设置使用密码 |
redis数据类型
String - 字符串类型
String最大512mb建议单个kv不超过100kb
命令 | 示例 | 说明 |
---|---|---|
get | get hello | 获取key=hello的结果 |
set | set hello world | 设置key=hello,value=world |
mset | mset hello world java best | 一次性设置多个值 |
mget | mget hello java | 一次性获取多个值 |
del | del hello | 删除key=hello |
incr/decr | incr count decr count | key自增/自减 1 |
incrby/decrby | incrby count 99 decrby count 99 | 自增自减指定步长 |
- Hash - Hash类型
用于存储结构化数据
命令 | 示例 | 说明 |
---|---|---|
hget | hget emp:1 age | 获取hash中key=age的值 |
hset | hset emp:1 age 23 | 设置hash中age=23 |
hmset | hmset emp:1 age 30 name kaka | 设置hash多个值 |
hmget | hmget emp:1 age name | 获取hash多个值 |
hgetall | hgetall emp:1 | 获取hash所有值 |
hdel | hdel emp:1 age | 删除emp:1的age |
hexists | hexists emp:1 age | 删除emp:1的age |
hlen | hlen emp:1 | 获取emp:1长度 |
- List - 列表类型
List列表就是一系列字符串的“数组”,按插入顺序排序,最大长度为2的32次方-1,可以包含40一个元素
命令 | 示例 | 说明 |
---|---|---|
rpush | rpush listkey c b a | 右侧插入 也就是尾部插入 |
lpush | lpush listkey f e d | 左侧插入 也就是前面插入 |
rpop | rpop listkey | 右侧弹出 |
lpop | lpop listkey | 左侧弹出 |
hgetall | hgetall emp:1 | 获取hash所有值 |
hdel | hdel emp:1 age | 删除emp:1的age |
hexists | hexists emp:1 age | 删除emp:1的age |
hlen | hlen emp:1 | 获取emp:1长度 |
- Set - 集合类型
Set集合是字符串的无序集合,集合成员是唯一的
命令 | 示例 | 说明 |
---|---|---|
sadd | sadd set1 a | 添加set1集合成员为a |
sdel | sadd set1 a | 添加set1集合成员为a |
smembers | smembers set1 | 查看集合所有成员 |
sinter | sinter set1 set2 | 查看两个集合中重复的元素 |
sunion | set1 set2 | 合并两个集合,会去除重复的元素 |
sdiff | sdiff set1 set2 | 查看两个集合的差集 显示在set1中有set2中没有的元素 |
- Zset - 有序集合类型
Zset集合是字符串的有序集合,集合成员是唯一的
命令 | 示例 | 说明 |
---|---|---|
zadd | zadd zset1 100 a | 添加有序集合 |
zrange | zrange zset1 0 -1 withscores | 循环遍历集合zset1 从第0为位到最后一位 withscores 打印分数 |
zrangebyscore | zrangebyscore zset1 100 103 | 晒选集合zset1 最小100分-最大103分的元素 |