redis基础知识

redis基础知识

redis默认有16个数据库

img

默认使用的是第0个

可以使用select进行切换

127.0.0.1:6379> SELECT 2 #切换数据库
OK
127.0.0.1:6379[2]> DBSIZE # 查看DB大小!
(integer) 0
127.0.0.1:6379[2]> keys * #查看数据库所有的key
1) "name"

清楚当前数据库 flushdb

清除全部数据库flushall

彩蛋:为什么redis端口号是6379!自行了解!

Redis是单线程的!

明白Redis是很快的,官方表示,Redis是基于内存操作,CPU不是Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽来的,既然可以使用单线程来实现,就使用单线程了!所以就使用单线程了!

Redis是C语言写的,官方提供的数据为 100000+ 的QPS,完全不比同样是使用key-value的Memecache差!

Redis为什么单线程还这么快?

  1. 误区1:高性能的服务器一定是多线程的
  2. 误区2:多线程一定比单线程效率高

CPU>内存>硬盘的速度要有所了解!

核心:redis是将所有的数据全部存放在内存中的,所以说使用单线程去操作效率就是最高的,多线程(CPU上下文会切换:耗时操作!!!),对于内存系统来说,如果没有上下文切换效率就是最高的!多次读写都是在一个CPU上的,在内存情况下,这个就是最佳的方案!

五大基本数据类型

img

127.0.0.1:6379> keys *
(empty array)
127.0.0.1:6379> set name dengwang # set key
OK
127.0.0.1:6379> keys *
1) "name"
127.0.0.1:6379> set age 3
OK
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> exists name #判断当前key是否存在
(integer) 1
127.0.0.1:6379> exists name1
(integer) 0
127.0.0.1:6379> move name 1 #移除当前的key
(integer) 1
127.0.0.1:6379> keys *
1) "age"
127.0.0.1:6379> set name dw
OK
127.0.0.1:6379> keys *
1) "name"
2) "age"
127.0.0.1:6379> get name
"dw"
127.0.0.1:6379> EXPIRE name 5 #设置过期时间,单位是秒
(integer) 1
127.0.0.1:6379> ttl #查看当前key的剩余时间
(error) ERR wrong number of arguments for 'ttl' command
127.0.0.1:6379> ttl name
(integer) 0
127.0.0.1:6379> get name
(nil)
127.0.0.1:6379> type name  #查看当前key的一个类型
none
127.0.0.1:6379> type age
string

后面如果遇到不会的命令,可以在官网查看帮助文档!

img

posted @ 2021-08-24 09:56  saxon宋  阅读(32)  评论(0)    收藏  举报