一、概述
Redis是什么?
Redis(Remote Dictionary Server ),即远程字典服务。 是一个开源的使用ANSI
C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis能该干什么?
- 内存存储、持久化,内存是断电即失的,所以需要持久化(RDB、AOF)
- 高效率、用于高速缓冲
- 发布订阅系统
- 地图信息分析
- 计时器、计数器(eg:浏览量)
- 。。。
特性
- 多样的数据类型
- 持久化
- 集群
- 事务
…
二、环境搭建
官网:https://redis.io/
推荐使用Linux服务器学习。
windows版本的Redis已经停更很久了…
2.1 Windows安装
https://github.com/dmajkic/redis
解压安装包
开启redis-server.exe
启动redis-cli.exe测试
2.2 Linux安装
下载安装包!redis-5.0.8.tar.gz
解压Redis的安装包!程序一般放在 /opt 目录下
基本环境安装
yum install gcc-c++
# 然后进入redis目录下执行
make
# 然后执行
make install
redis默认安装路径 /usr/local/bin
将redis的配置文件复制到 程序安装目录 /usr/local/bin/kconfig下
redis默认不是后台启动的,需要修改配置文件!
通过制定的配置文件启动redis服务
使用redis-cli连接指定的端口号测试,Redis的默认端口6379
查看redis进程是否开启
关闭Redis服务 shutdown
相关命令操作:
如果是用apt-get或者yum install安装的redis,可以直接通过下面的命令停止/启动/重启redis
/etc/init.d/redis-server stop /etc/init.d/redis-server start
/etc/init.d/redis-server restart如果是通过源码安装的redis,则可以通过redis的客户端程序redis-cli的shutdown命令来重启redis
1.redis关闭 redis-cli -h 127.0.0.1 -p 6379 shutdown
2.redis启动 redis-server
如果上述方式都没有成功停止redis,则可以使用终极武器 kill -9
2.3 测试性能
**redis-benchmark:**Redis官方提供的性能测试工具,参数选项如下:
简单测试:
# 测试:100个并发连接 100000请求
redis-benchmark -h localhost -p 6379 -c 100 -n 100000
三、基础知识
redis默认有16个数据库
默认使用的第0个;
16个数据库为:DB 0~DB 15
默认使用DB 0 ,可以使用select n切换到DB n,dbsize可以查看当前数据库的大小,与key数量相关。
127.0.0.1:6379> config get databases # 命令行查看数据库数量databases
1) "databases"
2) "16"
127.0.0.1:6379> select 8 # 切换数据库 DB 8
OK
127.0.0.1:6379[8]> dbsize # 查看数据库大小
(integer) 0
# 不同数据库之间 数据是不能互通的,并且dbsize 是根据库中key的个数。
127.0.0.1:6379> set name sakura
OK
127.0.0.1:6379> SELECT 8
OK
127.0.0.1:6379[8]> get name # db8中并不能获取db0中的键值对。
(nil)
127.0.0.1:6379[8]> DBSIZE
(integer) 0
127.0.0.1:6379[8]> SELECT 0
OK
127.0.0.1:6379> keys *
1) "counter:__rand_int__"
2) "mylist"
3) "name"
4) "key:__rand_int__"
5) "myset:__rand_int__"
127.0.0.1:6379> DBSIZE # size和key个数相关
(integer) 5
keys * :查看当前数据库中所有的key。
flushdb:清空当前数据库中的键值对。
flushall:清空所有数据库的键值对。
四、Redis的单线程和多线程
6.0版本之前,redis一直是单线程,6.0之后开始引入了多线程,具体可以参考下面这篇文章。
https://blog.csdn.net/weixin_41979002/article/details/122111950