Redis教程

Redis——Redis入门和一些笔记

本文主要是介绍Redis——Redis入门和一些笔记,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Redis入门和一些笔记

  • Redis概述
  • Redis安装
  • Redis性能测试
  • Redis一些基础知识

Redis概述

Redis是什么?

  • Redis(Re mote Di ctionary S erver ),即远程字典服务
  • 是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并提供多种语言的API
  • redis会周期性的把更新的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-slave(主从)同步
  • 免费和开源,当下最热门的NoSQL技术之一,也被称为结构化数据库
  • 读的速度是110000次/s,写的速度是81000次/s
    在这里插入图片描述

Redis能干什么?

  • 内存存储,持久化,内存中是断电即失,所以持久化很重要(rdb、aof)
  • 效率高,可用于高速缓存
  • 发布订阅系统
  • 地图信息分析
  • 计时器、计数器(微信、微博、浏览量)

Redis特性

  • 多样数据类型
  • 持久化
  • 集群
  • 事务

Redis安装

Redis推荐都是在Linux服务器上搭建

  • 官网https://redis.io/
  • 中文站点http://www.redis.cn/

官网下载redis-6.2.4

#基本环境安装
[root@pakho ~]# gcc -v    #查看当前gcc版本
gcc version 4.8.5 20150623 (Red Hat 4.8.5-28) (GCC)
#将redis-6.2.4.tar.gz上传服务器/usr/src目录

#解压redis安装包
[root@pakho src]# tar xf redis-6.2.4.tar.gz
[root@pakho src]# cd redis-6.2.4
[root@pakho redis-6.2.4]# make
[root@pakho redis-6.2.4]# make install

redis默认安装路径/usr/local/bin
#创建一个config文件夹
[root@pakho bin]# mkdir redis_config

#将redis配置文件 复制到redis_config下
[root@pakho bin]# cp /usr/src/redis-6.2.4/redis.conf redis_config/
[root@pakho redis_config]# ls                           #之后就用这个配置文件进行启动,原生文件作为备份
redis.conf

#redis默认不是后台启动,修改配置文件
[root@pakho redis_config]# vim redis.conf

daemonize no > daemonize yes                            #开启后台启动

启动redis
[root@pakho bin]# redis-server redis_config/redis.conf  #redis通过指定配置文件启动

连接redis
[root@pakho bin]# redis-cli -p 6379                     #-h:表示主机默认本机 -p:端口
127.0.0.1:6379> ping
PONG                                                    #连接成功
127.0.0.1:6379> set name pakho
OK
127.0.0.1:6379> get name
"pakho"
127.0.0.1:6379> keys *                                  #获取redis中所有的key
1) "name"

至此安装完成
[root@pakho redis-6.2.4]# ps aux | grep redis           #查看redis进程是否开启(cli和redis-server)

Redis性能测试

redis-benchmark是redis官方自带的压力测试工具

选项描述默认值
-h指定服务器主机名127.0.0.1
-p指定服务器端口6379
-s指定服务器 socket
-c指定并发连接数50
-n指定请求数10000
简单测试
100个并发连接 每个并发100000请求
redis-benchmark -h localhost -p 6379 -c 100 -n 100000

在这里插入图片描述
在这里插入图片描述

Redis一些基础知识

关闭redis服务

127.0.0.1:6379> shutdown
not connected> exit

redis默认16个数据库
不同的数据库存放不同的值

[root@pakho redis_config]# vim redis.conf
databases 16

`默认使用第0个`

#可以使用select进行切换
127.0.0.1:6379> select 3
OK
#DBSIZE查看当前数据库大小
127.0.0.1:6379[3]> dbsize
(integer) 0

#查看数据库所有key
127.0.0.1:6379> keys *

#清空全部库的内容
127.0.0.1:6379[3]> flushall

#清空当前库
127.0.0.1:6379[3]> flushdb
OK

Redis是单线程的

  • Redis是很快的,官方表示,Redis基于内存操作,CPU部署Redis性能瓶颈,Redis的瓶颈是根据机器的内存和网络带宽

Redis为什么单线程还这么快?

  • Redis是C语言写的,官方数据为100000+的QPS,完全不比通样使用key-vale的Memcache差
  • Redis将所有的数据全部放在内存中的,所以说使用单线程去操作效率就是最高的(CPU上下文切换,耗时的操作)
  • 对于内存系统来说,如果没有上下文切换效率就是最高的,多次读写都是在一个CPU上,在内存情况下,就是最佳方案

添加信息
set name value

127.0.0.1:6379> set name wyc
OK

信息查询
get key

127.0.0.1:6379> get name
"wyc"

获取帮助
help

127.0.0.1:6379> help set

  SET key value [EX seconds|PX milliseconds|EXAT timestamp|PXAT milliseconds-timestamp|KEEPTTL] [NX|XX] [GET]
  summary: Set the string value of a key
  since: 1.0.0
  group: string

127.0.0.1:6379> help get

  GET key
  summary: Get the value of a key
  since: 1.0.0
  group: string

测试PING
ping

127.0.0.1:6379> ping
PONG

判断是否存在
exists

127.0.0.1:6379> exists name
(integer) 1

127.0.0.1:6379> exists lhb
(integer) 0

移动Key
move

127.0.0.1:6379> move name 1
(integer) 1
127.0.0.1:6379> select 1
OK
127.0.0.1:6379[1]> get name
"wyc"

设置key的过期时间
expire

127.0.0.1:6379[1]> expire name 5
(integer) 1
127.0.0.1:6379[1]> ttl name
(integer) 2
127.0.0.1:6379[1]> ttl name
(integer) 1
127.0.0.1:6379[1]> ttl name
(integer) -2
127.0.0.1:6379[1]> exists name
(integer) 0
127.0.0.1:6379[1]> get name
(nil)

type 查看 key类型
type

127.0.0.1:6379[1]> set name pakho
OK
127.0.0.1:6379[1]> type name
string
这篇关于Redis——Redis入门和一些笔记的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!