Redis的基本认识
切换数据库 —— 使用select
Redis默认有16个数据库
127.0.0.1:6379> select 1 # 选择1号数据库
OK
127.0.0.1:6379[1]> DBSIZE # 因为没有存值,所以为0 数据库大小
(integer) 0
set为添加,get获取
我们在使用删除命令时有两个删除命令
- FLUSHDB //删除当前所在数据库全部数据
- FLUSHALL // 删除所有数据库数据
Redis是单线程的(面试会问到)
Redis是基于内存操作的,对于Redis来讲CPU并不是Redis的瓶颈,而对于Redis的瓶颈则是 机器的内存和网络带宽 ,这是可以使用单线程来实现的,所以就使用了单线程。
那么就会有个问题:
为什么Redis是单线程的还那么快?
因为Redis讲数据全部放在内存中,所以使用单线程去操作效率是最高的。在多线程中会出现CPU的上下文切换,这是一个耗时的操作,多个线程会导致CPU上下文切换的时间积累导致效率变低。而对于内存来讲没有上下文读写效率就是最高,多次读写都是在一个CPU上运行。所单线程下效率高。
Redis的作用有三个
作为数据库、缓存、消息中间件MQ
RedisKey基本命令
exists … # 判断key是否存在
move … # 移除key ,一般不会去用
设置key的过期时间
expire key send… 单位为秒
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> get name
"songguo"
127.0.0.1:6379> expire name 5 # 设置key的过期时间 ,单位是s
(integer) 1
127.0.0.1:6379> ttl name # 查看还有多长时间过期
(integer) -2
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> keys *
1) "age"
查看key的类型
type key
Redis相关的命令都在官方文档里面。,以后在看到不认识的命令时是可以查询的。