目录
概述
安装Redis
Windows安装redis
Linux安装
1、下载安装包:redis-6.2.5.tar.gz
2、解压Redis的安装包!程序一般放在 /opt 目录下
3、进入解压文件后,可以看到redis的配置文件
4、基本的环境安装
5、redis的默认安装路径 /usr/local/bin
6、将redis的配置文件,复制到我们的当前目录下
9、使用redis-cli进行测试链接
10、查看redis 的进程是否开启
11、关闭redis服务 shutdown
启动Redis
测试性能
基础知识
1.可以使用select 进行切换数据库
2.查看数据库大小 dbsize
3、查看所得key keys *
4、清空当前数据库 flushdb
5、清空全部数据库内容 flushall
redis是单线程的
核心:
官网:Redis
中文网:Redis中文网、CRUG网站
Redis是什么?
Redis(Remote Dictionary Server ),即远程字典服务。
是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步。
Redis能该干什么?
特性
多样的数据类型
持久化
集群
事务
…
Window下使用确实简单,但是Redis推荐我们使用Linux去开发使用!
[root@gh gh]# mv redis-6.2.5.tar.gz /opt #移动到 opt目录下 [root@gh gh]# cd /opt [root@gh opt]# ls containerd redis-6.2.5.tar.gz [root@gh opt]# tar -zxvf redis-6.2.5.tar.gz #解压
# yum install gcc-c++ # gcc -v # make # 把所有需要的文件给配置上 # make insatll
cd /usr/local/bin
7、redis默认不是后台启动的,修改配置文件!
8、启动redis服务
通过制定的配置文件启动 redis-server gconfig/redis.conf
[root@gh bin]# redis-server gconfig/redis.conf
[root@gh bin]# redis-server gconfig/redis.conf [root@gh bin]# redis-cli -p 6379 127.0.0.1:6379> ping PONG 127.0.0.1:6379> [root@gh bin]# ls gconfig jemalloc.sh libmcrypt-config luajit-2.0.4 mdecrypt redis-check-aof redis-cli redis-server jemalloc-config jeprof luajit mcrypt redis-benchmark redis-check-rdb redis-sentinel [root@gh bin]# redis-cli -p 6379 127.0.0.1:6379> ping PONG 127.0.0.1:6379> set name gh OK 127.0.0.1:6379> get name1 (nil) 127.0.0.1:6379> get name "gh" 127.0.0.1:6379> key * (error) ERR unknown command `key`, with args beginning with: `*`, 127.0.0.1:6379> keys * 1) "name" 127.0.0.1:6379>
[root@gh ~]# cd /usr/local/bin [root@gh bin]# redis-server gconfig/redis.conf [root@gh bin]# redis-cli -p 6379 ********* 关闭 *************** shutdown exit
redis-benchmark:Redis官方提供的性能测试工具,参数选项如下:
测试
测试 100个并发链接 100000请求 [root@gh /]# redis-benchmark -h localhost -p 6379 -c 100 -n 100000
redis默认有16个数据库,默认使用的是第0个,
127.0.0.1:6379> select 3 OK 127.0.0.1:6379[3]>
127.0.0.1:6379[3]> dbsize (integer) 0 127.0.0.1:6379[3]> set name gh OK 127.0.0.1:6379[3]> dbsize (integer) 1 127.0.0.1:6379[3]>
127.0.0.1:6379[3]> keys * 1) "name" 127.0.0.1:6379[3]>
flushdb
flushall
redis是单线程的
redis很快,redis基于内存操作,cpu不是redis性能瓶颈,redis的瓶颈是根据机器的内存和网络带宽,既然可以使用单线程来实现,就使用单线程。
redis是c语言写的,官方数据是100000+的QPS,这个不必同样使用key-value的Memecache差
redis为什么单线程还这么快
1.误区:高性能的服务器一定是多线程的?
2.误区二:多线程(cpu上下文切换)一定比单线程高!
redis将所有数据全部放在内存中,所以说使用单线程去操作效率高,多线程(cpu上下文切换:耗时操作),对于内存系统来说,如果没有上下文切换效率是最高的,多次读写都是在一个cpu上的,在内存情况下,这个就是最佳方案!