Redis 是什么

Redis是一种基于键值对(key-value)的NoSQL数据库。

为什么使用Redis

速度快

Redis的时间颗粒度一般是微秒,慢查询的默认值是10 000微秒,即10毫秒。

简单

  • API
  • 协议:RESP(REdis Serialization Protocol)
  • 源码:5万

怎么使用Redis

命令总览

redis mysql 作用
redis-cli mysql 自带客户端
set insert ... on duplicate key update 新增或者修改
get select 查询
del delete from 删除
client list show processlist 查看连接情况
keys pattern like 查询对应模式的key列表
info replication - 是否Master节点
config get requirepass - 查看密码
expire key seconds - 设置key的有效期
ttl key - 查看key的有效期
exists key - 判断key是否存在

命令讲解

redis-cli

连接指定IP,指定端口的redis服务器

redis-cli -h {host} -p {port} -a {pass}

$./redis-cli -h 10.202.24.171 -p 8080
10.202.24.171:8080> PING
(error) NOAUTH Authentication required.
10.202.24.171:8080> AUTH admin.123
OK
10.202.24.171:8080>
./redis-cli -h 10.202.101.4 -p 6379 -a admin.123

key的增删改查

set key value

get key

del key

10.202.24.171:8080> set user_449631 lihairong
OK
10.202.24.171:8080> get user_449631
"lihairong"
10.202.24.171:8080> exists user_449631
(integer) 1
10.202.24.171:8080> del user_449631
(integer) 1
10.202.24.171:8080> get user_449631
(nil)
10.202.24.171:8080> exists user_449631
(integer) 0
10.202.24.171:8080>

查询是否master节点

10.202.24.171:8080> info Replication
# Replication
role:master
connected_slaves:0
master_repl_offset:11545465
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:10496890
repl_backlog_histlen:1048576
10.2.xxx.xx:8080> info Replication
# Replication
role:slave
master_host:10.2.231.94
master_port:8080
master_link_status:up
master_last_io_seconds_ago:0
master_sync_in_progress:0
slave_repl_offset:11661520052
slave_priority:100
slave_read_only:1
connected_slaves:0
master_repl_offset:0
repl_backlog_active:0
repl_backlog_size:1048576
repl_backlog_first_byte_offset:0
repl_backlog_histlen:0

查看pass

连接并认证可通过redis命令获取

127.0.0.1:6379> config get requirepass

查看服务器的配置文件,一般存放在conf文件夹

[appdeploy@cnsz22vl1101:/app/redis/conf]$cat SFECP_CNSZ22_REDIS_CACHE_SVR_01.conf | grep requirepass
requirepass "admin.123"

client list

10.202.24.171:8080> client list
id=8 addr=10.202.24.171:39978 fd=11 name=sentinel-ca6ff759-cmd age=11843771 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=publish
id=10 addr=10.202.24.171:30351 fd=13 name=sentinel-2aef8d79-cmd age=11843761 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=info
id=30711 addr=10.202.24.170:56322 fd=5 name=sentinel-0a0deac6-cmd age=7307073 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=publish
id=42956 addr=10.202.24.171:17510 fd=10 name=sentinel-2aef8d79-pubsub age=6629498 idle=0 flags=N db=0 sub=1 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=subscribe
id=42958 addr=10.202.24.171:59685 fd=14 name=sentinel-ca6ff759-pubsub age=6629498 idle=0 flags=N db=0 sub=1 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=subscribe
id=54850 addr=10.202.24.170:27905 fd=6 name=sentinel-0a0deac6-pubsub age=6109432 idle=0 flags=N db=0 sub=1 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=subscribe
id=161052 addr=10.202.91.7:37620 fd=7 name= age=8965 idle=3 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=161055 addr=10.202.91.14:27102 fd=9 name= age=8890 idle=9 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=161056 addr=10.202.91.13:35310 fd=12 name= age=8889 idle=8 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=161147 addr=10.202.91.1:56217 fd=15 name= age=202 idle=5 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=161151 addr=10.202.91.1:56817 fd=8 name= age=5 idle=5 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=0 obl=0 oll=0 omem=0 events=r cmd=ping
id=161152 addr=10.202.24.13:29523 fd=16 name= age=4 idle=0 flags=N db=0 sub=0 psub=0 multi=-1 qbuf=0 qbuf-free=32768 obl=0 oll=0 omem=0 events=r cmd=client

key的有效期

ttl key

10.202.24.171:8080> keys service*
1) "serviceArea_20170411"
2) "serviceArea_serviceArea"
3) "serviceArea_20170515"
10.202.24.171:8080> ttl serviceArea_20170515
(integer) 41559
10.202.24.171:8080> quit
[appdeploy@cnsz22vl1101:/app/redis/conf]$bc
bc 1.06.95
Copyright 1991-1994, 1997, 1998, 2000, 2004, 2006 Free Software Foundation, Inc.
This is free software with ABSOLUTELY NO WARRANTY.
For details type `warranty'.
41559 / 60 /60
11
^C
(interrupt) Exiting bc.
[appdeploy@cnsz22vl1101:/app/redis/conf]$date
Mon May 15 12:25:34 CST 2017

info

配置很多,请参看扩展阅读。

缓存更新的套路

  • Cache Aside Pattern
+--------------------------------------------------+
| |
| Web Server |
| |
+------------------^^--------------------^^--------+
|| || ||
hit || || ||
|| || return ||
|| || ||
+-------vv---------------------+ ||
| | ||
| Cache(Redis) | || return
| | ||
+------------------^^----------+ ||
|| || ||
miss|| || ||
|| || write cache ||
|| || ||
+-------vv------------------------------------------+
| |
| DB (MYSQL) |
| |
+---------------------------------------------------+
  • Read/Write Through Pattern

  • Write Behind Caching Pattern

See Also

Redis 开发与运维

Redis 实战

缓存更新的套路

Redis 基础概念和命令的更多相关文章

  1. 【转】Redis 基础操作和命令

    笔记 Redis提供了六种基本的数据结构:String,Hash,List,Set,Sorted Set,HyperLogLog. Redis的特点:纯内存操作,单线程工作模型,非阻塞I/O多路复用. ...

  2. Redis学习笔记(3) Redis基础类型及命令之二

    1. 集合类型 集合类型与列表类型有很多相似之处,但二者的区别在于:前者具有唯一性,但不具有有序性:后者具有有序性,但不具有唯一性.集合类型的常用操作是向集合中加入或删除元素.判断某个元素是否存在等, ...

  3. Redis学习笔记(2) Redis基础类型及命令之一

    1. 基础命令 (1) 获取符合规则的键名列表 格式为:KEYS pattern 其中pattern表示支持通配符 # 建立一个名为bar的键 > SET bar OK # 获取Redis所有键 ...

  4. Redis基础知识、命令以及java操作Redis

    1 nosql的概念 sql:操作(关系型)数据库的标准查询语言 关系型数据库(rdbms):以关系(由行和列组成的二维表)模型为核心数据库,有表的储存系统.(mysql.oracle.sqlserv ...

  5. shell基础概念, if+命令, shell中引用python, shell脚本的几种执行方式

    说明: 虚拟机中shell_test目录用来练习shell, 其中有个test.log文件用来存放日志 #!/usr/bin/bash      # shell文件开头, 用来指定该文件使用哪个解释器 ...

  6. windows下使用redis,Redis入门使用,Redis基础命令

    windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...

  7. 【redis】redis基础命令学习集合

    写在前面 Redis是一个高速的内存数据库,它的应用十分广泛,可以说是服务端必学必精的东西.然而,学以致用,无用则无为.学了的东西必须反复的去用,去实践,方能有真知.这篇文章记录了我在redis学习过 ...

  8. Redis 基础及各数据类型对应的命令

    Redis 命令文档 基本概念 安装及使用 可以在官网下载源码编译安装.对于 CentOS,还可以通过 yum install redis 安装. Redis 安装完成后,通过 redis-serve ...

  9. Redis基础命令

    redis本身不区分命令的大小写,这里一律用小写,以下是部分简单的命令. 1.连接操作命令    quit:关闭连接(connection)    auth:简单密码认证    help cmd: 查 ...

随机推荐

  1. nodejs創建目錄命令mkdir失敗

    Windows系統 學習nodejs創建目錄命令:mkdir var fs = require('fs'); fs.mkdir('./tmp/test',function (err) { if(err ...

  2. 关于Django中路由层(URL-conf)

    关于路由层 路由层其实就是项目中urls.py那个文件,那里面存放着url和视图函数的对应关系它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于客户端发来 ...

  3. python3 发送QQ邮件

    from email.header import Headerfrom email.mime.text import MIMETextfrom smtplib import SMTP_SSL emai ...

  4. Invalid prop: type check failed for prop "XXX". Expected String, got Object.

    项目是Vue的,基于elementUI的后台管理系统. Invalid prop: type check failed for prop "total". Expected Str ...

  5. NIOGoodDemo

    Java NIO是在jdk1.4开始使用的,它既可以说成“新I/O”,也可以说成非阻塞式I/O.下面是java NIO的工作原理: 1. 由一个专门的线程来处理所有的 IO 事件,并负责分发. 2. ...

  6. Django media的设置

    django在定义模型时需要一些上传的文件,例如图片 class Banner(models.Model): """ 轮播图models titles 标题 images ...

  7. 2019.03.21 读书笔记 readonly与const

    区别: const是编译时常量(指反编译时看到的源码是常量本身,而不是变量),自带static,只能修饰基元类型.枚举.字符串,readonly是运行时常量(全局变量或者构造赋值),不受类型限制,但在 ...

  8. Unity 游戏对象的组件列表

    描述: 1 个游戏对象,上面有 4 个组件, 如图: 脚本 Test_01 的内容,如下: using System.Collections; using System.Collections.Gen ...

  9. Django重新整理2

    Auth认证: 1.分配路由和创建视图函数 2.在视图函数中引用Django为我们提供的用户认证组建Auth 3.直接进行判断: def login(request): if request.meth ...

  10. Oracle之RMAN备份及还原

    RMAN可以进行增量备份:数据库,表空间,数据文件 只有使用过的block可以被备份成backup set 表空间与数据文件对应关系:dba_data_files / v$datafile_heade ...