只是我平时自己的总结。
redis是什么?
Redis(Remote Dictionary Server ),即远程字典服务,是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API。
redis能干嘛?
1.内存存储,持久化,内存中断电即失,所以持久化很重要(rdb,aof)
2.效率高,可以用于高速缓存。
3.发布订阅系统。
4.地图信息分析。
5.计数器,计时器(浏览量)
6....
redis特性
1.多样的数据类型
2.持久化
3集群
4.事务
linux安装redis
1.上传安装包
2.解压缩
3.安装环境 yum install gcc-c++
4.查看环境是否安装成功 gcc -v
5.执行make命令
6.make install
redis默认安装路径 /usr/local/bin
将redis配置文件拷贝一份到安装目录下
cp /usr/local/app/redis-5.0.12/redis.conf ./
redis默认不是后台启动,需要将damonize设置位yes
/daemonize 快速定位这个字段,方便查找
启动redis
通过指定的配置文件启动服务
./redis-server redis.conf
启动成功
客户端链接 -p 指定端口
./redis-cli -p 6379
设置数据测试成功
查看redis进程id
ps -ef|grep redis
或者
ps aux |grep redis
关闭redis
shutdown
exit
服务也停掉了,进程id没了。
利用benchmark性能测试工具理解redis到底有多块
100个客户端并发连接,十万个请求
[root@centos-02 bin]# ./redis-benchmark -h 127.0.0.1 -p 6379 -c 100 -n 100000
====== PING_INLINE ======
100000 requests completed in 1.08 seconds #1.08秒
100 parallel clients # 100个并行线程
3 bytes payload # 每个请求3个字节
keep alive: 1 #一台设备机器处理
89.81% <= 1 milliseconds
99.80% <= 2 milliseconds
99.80% <= 3 milliseconds
99.92% <= 4 milliseconds
100.00% <= 4 milliseconds #4ms处理完所有请求
92678.41 requests per second #每秒钟处理九万多请求 已经是很牛逼了
redis基本知识说明
127.0.0.1:6379> select 3 #选择3号库
OK
127.0.0.1:6379[3]>
127.0.0.1:6379[3]> dbsize 3号库现在没有东西
(integer) 0
127.0.0.1:6379[3]> set name zs 设置一个键值对进去
OK
127.0.0.1:6379[3]>
127.0.0.1:6379[3]> dbsize 查看db 大小 显示为1 有一个了
(integer) 1
127.0.0.1:6379[3]> keys * 查看当前库所有的key
1) "name"
127.0.0.1:6379[3]> flushdb 清除当前库
OK
127.0.0.1:6379[3]> keys *
(empty list or set)
127.0.0.1:6379[3]> keys *
(empty list or set)
127.0.0.1:6379[3]> select 0
OK
127.0.0.1:6379> clear
127.0.0.1:6379> keys *
1) "key:__rand_int__"
2) "mylist"
3) "counter:__rand_int__"
127.0.0.1:6379>
127.0.0.1:6379>
127.0.0.1:6379> select 3
OK
127.0.0.1:6379[3]>
127.0.0.1:6379[3]> flushall # 清除所有的key
OK
127.0.0.1:6379[3]> select 0
OK
127.0.0.1:6379>
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379>
Redis6.0版本之前,单线程为什么还这么快?
因为redis中的数据都是放在内存系统中的,所以使用单线程去操作效率就是最高的,多线程(cpu上下文会切换:耗时的操作),对于内存系统来说,如果没有上下文切换效率就是最高的!!
多次读写都是在一个cpu上,在内存情况下,这就是最佳的方案!!