3.Redis 的基础知识
Redis 默认有 16 个数据库
查看 Redis 配置文件
点击回车,往下翻发现:
默认使用的编号为0(第一个)数据库
按 :wq+enter 退出
重新开启动一个xshell连接,开启 redis 服务:
输入 clear 清空:
使用 select 切换数据库
redis 默认是用的编号为0的数据库,可以输入 select index
切换数据库:
使用 flushdb 清空当前数据库
我们在第四个数据库中添加数据:
输入 dbsize
可以查看当前数据库中的数据个数
输入 keys *
可以查看当前数据库中的所有 key
我们再切换到第一个数据库,也在里面添加一组数据:
输入 flushdb
清空当前数据库
输入 select 3
切换到第四个数据库查看key
发现第四个数据库里的值并没受到影响,flushdb 只是清空当前数据库
使用 flushall 清空所有数据库
上面步骤的操作结果:第四个数据库有一个数据,第1个数据库没有数据
现在我们切换到第一个数据库,添加回数据:
再次确认第一个数据库和第四个数据库中都有数据:
输入 flushall
清空所有数据库
发现第一个数据库和第四个数据库中的数据都被清空,flushall 清空所有数据
Redis 是单线程的!
官方表示,Redis是基于内存操作
,CPU不是Redis的性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽。可以使用单线程实现!
Redis 为什么单线程还这么快?
1、误区1:高性能的服务器一定是多线程的
2、误区2:多线程(存在CPU上下文切换!)一定比单线程效率高
CPU上下文切换的概念:一个线程分配到时间片,到未分配到,再到分配到时间片的过程。
核心:Redis 是将所有的数据都放在内存当中的,所以说使用单线程去操作效率就是最高的,多线程会存在CPU上下文切换,很耗时。对于内存系统来说,没有CPU上下文切换效率就是最高的
多次读写都是在同一个CPU上。
Redis常见命令补充
127.0.0.1:6379> auth zhanglei123
OK
127.0.0.1:6379> flushall #flushall 清空所有数据库
OK
127.0.0.1:6379> set name zhanglei
OK
127.0.0.1:6379> set age 1
OK
127.0.0.1:6379> keys * # 查看当前数据库中的所有key
1) "age"
2) "name"
127.0.0.1:6379> exists name #exist查看key是否存在,存在返回1
(integer) 1
127.0.0.1:6379> exists name1
(integer) 0
127.0.0.1:6379> type name #type 查看key的类型
string
127.0.0.1:6379> type age
string # move
127.0.0.1:6379> move name 1 #将数据移动到第index+1个数据库
(integer) 1
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
1) "name" # expire
127.0.0.1:6379[1]> expire name 10 #设置数据存活时间
(integer) 1
127.0.0.1:6379[1]> ttl name #查看数据剩余存活时间
#ttl---time to live
(integer) 6
127.0.0.1:6379[1]> ttl name
(integer) -2
127.0.0.1:6379[1]> keys *
(empty array)
127.0.0.1:6379[1]>