redis是什么?
redis是一个由 Salvatore Sanfilippo 写的 key-value 存储系 统。Redis 是一个开源的使用 ANSI C 语言编写、遵守 BSD 协议、支持网络、可基于内存亦可持久 化的日志型、Key-Value 数据库,并提供多种语言的 API。它通常被称为数据结构服务器,因为值 (value)可以是 字符串(String), 哈希(Hash), 列表(list), 集合(sets) 和 有序集合(sorted sets)等类型。
redis环境搭建?
redis 下载地址:http://download.redis.io/releases/redis-6.0.3.tar.gz
1、安装
$ cd redis-6.0.3
$ make
make 之后就编译完成了。有时间还可以 make test
$ sudo make install
默认安装到/usr/local/bin/目录,对应的命令
redis-server 是服务器程序
redis-cli 是客户端程序
2、以后台的方式启动redis-server
$ sudo mdkir /etc/redis
将编译目录(redis-6.0.3)下的 redis.conf 拷贝到/etc/redis 目录
$ sudo cp redis.conf /etc/redis/6379.conf
修改/etc/redis/6379.conf 文件 将
daemonize no
改为
daemonize yes
启动后有如下打印
redis-cli的使用?
(1)默认无权限控制 $ redis-cli -h 127.0.0.1 -p 6379
(2)服务停止
$ redis-cli -h 127.0.0.1 -p 6379 shutdown
(3)有权限控制时(加上-a 密码)
需要配置密码的话就去/etc/redis/6379.conf 的配置文件中找到 requirepass 这个参
数,如下配置:
修改 redis.conf 配置文件
# requirepass foobared
requirepass 123123 指定密码 123123
指定密码后需要重启 redis-server
$ redis-cli -h 127.0.0.1 -p 6379 -a 123123
(4)Redis 默认启动
端口号为 127.0.0.1,端口号默认为:6379
$ redis-cli
抓包分析命令
sudo tcpdump -i any dst host 127.0.0.1 and port 6379
一台终端A 使用抓包命令
qb@qb:~$ sudo tcpdump -i any dst host 127.0.0.1 and port 6379
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes
另一台终端B 设置一个key
qb@qb:~$ redis-cli
127.0.0.1:6379> set name john
OK
此时终端A可以抓到包如下
11:52:50.352207 IP localhost.40352 > localhost.6379: Flags [P.], seq 1:34, ack 1, win 1365, options [nop,nop,TS val 583787 ecr 582520], length 33: RESP "set" "name" "john"
11:52:50.353051 IP localhost.6379 > localhost.40352: Flags [P.], seq 1:6, ack 34, win 342, options [nop,nop,TS val 583787 ecr 583787], length 5: RESP "OK"
redis的数据类型有哪些?
redis的基本数据结构,是一个key-value的形式