一、概览
1.1 什么是redis
官方介绍:Redis是一个开源的、基于内存的数据结构存储器,可以用作数据库、缓存和消息中间件。
总的来说Redis是一款开源的非关系型数据库,它基于内存的,key-value结构,“单线程”,支持持久化。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。有字符串,链表,集 合和有序集合。
redis常用于做页面信息、商品信息的缓存,单点登录或者前后端分离项目的session会话存储,接口限制参数存储等。至于消息中间件有专业的MQ和Kafka,基本不用redis。
高清大图:https://www.processon.com/view/link/5ebd5f64e0b34d5f260be816
1.2 redis特点
- 支持持久化,方式包括RDB和AOF(RDB持久化----原理是将Reids在内存中的数据库记录定时dump到磁盘上的RDB持久化;另外一种是AOF(append only file)持久化----原理是将Reids的操作日志以追加的方式写入文),具体可查看:https://www.jb51.net/article/65264.htm
- 基于内存,key-value结构,利用hash查询,还在内存里面,查询非常高效
- 支持集群,能提供高可用
- 单线程,线程安全、原子性,对事务友好
1.3 Redis数据模型
Redis的key都是string,value支持五种数据类型,它们分别是:
- string(字符串)
- hash(哈希)
- list(列表)
- set(集合)
- zset(sorted set:有序集合)
二、Redis基本操作(redis-cli)
安装redis可参考:https://blog.csdn.net/u014553029/article/details/101174652
2.1 连接工具
redis安装后,进入redis安装路径的src下即可看到以redis开头的可执行文件,称为redis shell。
可执行文件 | 作用 |
redis-server | 启动redis |
redis-cli | redis命令行工具 |
redis-benchmark | 基准测试工具 |
redis-check-aof | AOF持久化文件检测工具和修复工具 |
redis-check-dump | RDB持久化文件检测工具和修复工具 |
redis-sentinel | 启动redis-sentinel |
连接redis:redis-cli
- 连接:redis-cli -h {host} -p {port} -a {password}, 例如:redis-cli -h 127.0.0.1 -p 6379 -a 123456
- 退出:exit
- 操作服务端:service redis start/stop/restart
- 切换数据库:select n
redis数据库跟我们所熟悉的Oracle、MySql、PostgresSQL不同,它既没有数据库名称也没有schema,redis默认有16个数据库,用0-15来表示,没有指定就默认使用第一个数据库。
使用redis-cli连接redis数据库并操作:
2.2 Redis五大数据类型使用
2.2.1 全局key操作
对5 个数据类型都使用的命令
查看所有的key:keys *
删除键值对:del key
改名:rename key new_key
设置过期时间:expire key seconds
删除所有数据:flushal
注意:慎重keys *,数据量大时可能引发问题
2.2.2 String类型
strings是redis最基本的数据类型,一个key对应一个value
设置数据:set key value
查看数据:get key
追加数据:append key value
删除数据:del key;
操作截图:
2.2.3 List类型
头部添加数据:lpush key value [value…]
尾部添加数据:rpush key value [value…]
查看数据:lrange key start stop(-1:所有)
查看某个数据:lindex key index
修改数据:lset key index value
尾部删除数据:rpop key
头部删除数据:lpop key
操作截图:
2.2.4 Hash类型
添加(修改)数据:hset key field value
批量添加(修改)数据:hmset key field1 value1 field2 value2
查看域值:hget key field
查看所有的field和value:hgetall key
查看所有的value:hvals key
查看所有的field:hkeys key
删除:del key
操作截图:
2.2.5 Set类型
添加数据:sadd key member [member …]
查看数据:smembers key
随机删除:spop key
指定删除:srem key member [member …]
操作截图:
2.2.6 Sorted Set类型
添加数据: zadd key score member [score2 member2 …]
查看数据: zrange key start stop
通过scores值查看:zrangebyscore key min max
删除数据:zrem key member [member …]
通过索引删除多个数据:zremrangebyrank key min max
通过scores值删除:zremrangebyscore key min max
操作截图:
参考资料: