ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

Redis——Redis入门和一些笔记

2021-06-19 18:32:46  阅读:128  来源: 互联网

标签:127.0 入门 0.1 Redis redis 笔记 6379 name


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服务器上搭建

官网下载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

标签:127.0,入门,0.1,Redis,redis,笔记,6379,name
来源: https://blog.csdn.net/sixeleven611/article/details/118054994

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有