Redis的基本知识说明
1、启动redis服务器端和客户端
[root@VM-0-9-centos bin]# redis-server wylconfig/redis.conf
28237:C 28 Mar 2021 16:12:54.350 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
28237:C 28 Mar 2021 16:12:54.350 # Redis version=5.0.8, bits=64, commit=00000000, modified=0, pid=28237, just started
28237:C 28 Mar 2021 16:12:54.350 # Configuration loaded
[root@VM-0-9-centos bin]# redis-cli -p 6379
127.0.0.1:6379>
2、redis的基础知识概念
1)、redis默认有16个数据库
查看redis的配置文件:
# Specify the syslog facility. Must be USER or between LOCAL0-LOCAL7.
# syslog-facility local0
# Set the number of databases. The default database is DB 0, you can select
# a different one on a per-connection basis using SELECT <dbid> where
# dbid is a number between 0 and 'databases'-1
databases 16
默认使用的是第0
个数据库,可以使用select
进行切换数据库!
127.0.0.1:6379> SELECT 3
OK
127.0.0.1:6379[3]> get name
(nil)
127.0.0.1:6379[3]> select 0
OK
127.0.0.1:6379> get name
"ltwuyanlong"
127.0.0.1:6379>
2)、DBSIZE:查看数据库大小
127.0.0.1:6379> DBSIZE
(integer) 5
127.0.0.1:6379> select 3 # 切换数据库
OK
127.0.0.1:6379[3]> DBSIZE# 查看DB大小
(integer) 0
127.0.0.1:6379[3]>
不同的数据库可以查看不同的值。
3)、查看所有的key:
使用命令keys *
查看所有的key:
127.0.0.1:6379> keys *
1) "name"
2) "counter:__rand_int__"
3) "key:__rand_int__"
4) "mylist"
5) "myset:__rand_int__"
127.0.0.1:6379>
3)、清空当前DB:
127.0.0.1:6379[3]> select 0
OK
127.0.0.1:6379> keys *
1) "name"
2) "counter:__rand_int__"
3) "key:__rand_int__"
4) "mylist"
5) "myset:__rand_int__"
127.0.0.1:6379> FLUSHDB
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>
4)、清空所有的DB:
准备测试数据:
0号数据库:
127.0.0.1:6379> set name1 value1
OK
127.0.0.1:6379> set name2 value2
OK
127.0.0.1:6379> kses*
(error) ERR unknown command `kses*`, with args beginning with:
127.0.0.1:6379> kses *
(error) ERR unknown command `kses`, with args beginning with: `*`,
127.0.0.1:6379> keyss *
(error) ERR unknown command `keyss`, with args beginning with: `*`,
127.0.0.1:6379> keys *
1) "name2"
2) "name1"
1号数据库:
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
127.0.0.1:6379[1]> set name3 value3
OK
127.0.0.1:6379[1]> set name4 value4
OK
127.0.0.1:6379[1]> keys *
1) "name3"
2) "name4"
127.0.0.1:6379[1]>
执行清空所欲数据库命令:FLUSHALL(清空所有key):这里不管你在哪个数据库执行该命令都是可以的。
127.0.0.1:6379[1]> FLUSHALL
OK
127.0.0.1:6379[1]>
验证数据库key是不是被清空:
[root@VM-0-9-centos bin]# redis-cli -p 6379
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> keys *
(empty list or set)
127.0.0.1:6379[1]>
证明数据库被清空了!
5)、思考:
为什么redis的端口号是:6379?
6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。MERZ长期以来被Redis作者antirez及其朋友当作愚蠢的代名词。后来Redis作者在开发Redis时就选用了这个端口。
——Alessia Merz 是一位意大利舞女、女演员。 Redis 作者 Antirez 早年看电视节目,觉得 Merz 在节目中的一些话愚蠢可笑,Antirez 喜欢造“梗”用于平时和朋友们交流,于是造了一个词 “MERZ”,形容愚蠢,与 “stupid” 含义相同。
——后来 Antirez 重新定义了 “MERZ” ,形容”具有很高的技术价值,包含技艺、耐心和劳动,但仍然保持简单本质“。
——到了给 Redis 选择一个数字作为默认端口号时,Antirez 没有多想,把 “MERZ” 在手机键盘上对应的数字 6379 拿来用了。
以上就是redis端口号为什么是6379的详细内容
mysql的3306 是作者女儿的名字!
6)、redis是单线程的:
(1)、了解
明白redis是很快的,官方表示,redis是基于内存操作的,CPU不是性能瓶颈!Redis的性能瓶颈是根据机器的内存和网络带款,既然可以使用单线程来实现,那么就使用单线程来实现。所以就使用了单线程。
redis是使用ANSI C语言来编写的。
官方提供的数据显示:每秒的QPS是100000+。
说明这个并不比memcached差。在速度上完全碾压了。
(2)、为什么单线程还这么快?
误区1:
高性能的服务器一定是多线程的?
误区2
多线程(CPU上下文切换)一定比单线程效率高?
CPU>内存>硬盘的速速有所了解
核心:
redis是将所有的数据全部放在内存中的,所以说明了使用单线程去操作效率就是最高的。
多线程(CPU上下文的切换,这是一个耗时的操作!!!)
对于内存系统来说,如果没有上下文切换,效率就是最高的!
多次读写都是在一个CPU上的!
所以说,在内存情况下是最佳的方案!