Redis安装与配置文件和启动方式以及基本知识
下载解压到自己喜欢的目录后进入到redis文件夹编译安装:
安装后进入到src目录看到:
redis-server ------------>启动redis服务器
redis-cli-------------------->Redis命令客户端
redis-benchmark-------->Redis测试工具
redis-check-aof----------->AOF文件修复工具
redis-check-dump-------->RDB文件检查工具
redis-sentinel-------------->Sentinel服务器
三种启动方法:
最简启动:redis-server,按照默认配置启动
动态参数启动:redis-server --port 6380(6379是默认端口)
配置文件启动:redis-server configPath(配置文件)
因为redis是单线程的,所以可以在一台机器上布置多个redis,用端口区分开
启动常用的配置:
验证是否启动的方法有:
ps -ef | grep redis
netstat -antpl | grep redis
Redis客户端连接:redis-cli -h ip -p port
具体过程:(客户端和服务端可以在一台机器上)
通用命令:
[[email protected] ~]$ redis-cli -h node37 -p 6379
node37:6379>
node37:6379>
node37:6379> key *
(error) ERR unknown command 'key'
node37:6379> key*
(error) ERR unknown command 'key*'
node37:6379> set hello world
OK
node37:6379> keys *
1) "hello"
node37:6379> set python good
OK
node37:6379> keys *
1) "hello"
2) "python"
node37:6379> dbsize
(integer) 2
node37:6379> sadd myset as sd b h
(integer) 4
node37:6379> dbsize
(integer) 3
node37:6379> exists hello
(integer) 1
node37:6379> exists hella
(integer) 0
node37:6379> get hello
"world"
node37:6379> del hello
(integer) 1
node37:6379> get hello
(nil)
node37:6379> set a h
OK
node37:6379> expire a 10 ##设置过期时间为10秒
(integer) 1
node37:6379> get a
"h"
node37:6379> get a
"h"
node37:6379> get a
(nil)
node37:6379> persist a
(integer) 0
node37:6379> get a
(nil)
node37:6379> set a h
OK
node37:6379> expire a 100
(integer) 1
node37:6379> ttl a ###查看过期时间
(integer) 97
node37:6379> persist a ##在过期之前设置取消过期时间
(integer) 1
node37:6379> ttl a
(integer) -1
node37:6379> type a ##key的类型
string
node37:6379> type myset
set
数据结构和内部编码:空间换时间
单线程:所有命令都是要排队等待执行,一瞬间只会执行一个命令,不会执行两个命令。
单线程为什么这么快!!!!
1.纯内存数据存储 2.非阻塞IO 3.避免线程切换和竞态消耗