Redis 基础概念和命令
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提供了六种基本的数据结构:String,Hash,List,Set,Sorted Set,HyperLogLog. Redis的特点:纯内存操作,单线程工作模型,非阻塞I/O多路复用. ...
- Redis学习笔记(3) Redis基础类型及命令之二
1. 集合类型 集合类型与列表类型有很多相似之处,但二者的区别在于:前者具有唯一性,但不具有有序性:后者具有有序性,但不具有唯一性.集合类型的常用操作是向集合中加入或删除元素.判断某个元素是否存在等, ...
- Redis学习笔记(2) Redis基础类型及命令之一
1. 基础命令 (1) 获取符合规则的键名列表 格式为:KEYS pattern 其中pattern表示支持通配符 # 建立一个名为bar的键 > SET bar OK # 获取Redis所有键 ...
- Redis基础知识、命令以及java操作Redis
1 nosql的概念 sql:操作(关系型)数据库的标准查询语言 关系型数据库(rdbms):以关系(由行和列组成的二维表)模型为核心数据库,有表的储存系统.(mysql.oracle.sqlserv ...
- shell基础概念, if+命令, shell中引用python, shell脚本的几种执行方式
说明: 虚拟机中shell_test目录用来练习shell, 其中有个test.log文件用来存放日志 #!/usr/bin/bash # shell文件开头, 用来指定该文件使用哪个解释器 ...
- windows下使用redis,Redis入门使用,Redis基础命令
windows下使用redis,Redis入门使用,Redis基础命令 >>>>>>>>>>>>>>>> ...
- 【redis】redis基础命令学习集合
写在前面 Redis是一个高速的内存数据库,它的应用十分广泛,可以说是服务端必学必精的东西.然而,学以致用,无用则无为.学了的东西必须反复的去用,去实践,方能有真知.这篇文章记录了我在redis学习过 ...
- Redis 基础及各数据类型对应的命令
Redis 命令文档 基本概念 安装及使用 可以在官网下载源码编译安装.对于 CentOS,还可以通过 yum install redis 安装. Redis 安装完成后,通过 redis-serve ...
- Redis基础命令
redis本身不区分命令的大小写,这里一律用小写,以下是部分简单的命令. 1.连接操作命令 quit:关闭连接(connection) auth:简单密码认证 help cmd: 查 ...
随机推荐
- 富文本编辑器...quill 的使用放...
移动端 quill 时候用的 是 div 而不是 textarea.... 引入 dom <link href="//cdn.quilljs.com/1.3.6/quill.snow. ...
- P1110 [ZJOI2007]报表统计 (multiset)
[题目链接] https://www.luogu.org/problemnew/show/P1110 有以下三种操作: INSERT i k:在原数列的第i个元素后面添加一个新元素k:如果原数列的第i ...
- 读经典——《CLR via C#》(Jeffrey Richter著) 笔记_运行时解析类型引用
public sealed class Program{ public static void Main() { System.Console.WriteLine("Hi"); } ...
- HDU 3709 Balanced Number 求区间内的满足是否平衡的数量 (数位dp)
平衡数的定义是指,以某位作为支点,此位的左面(数字 * 距离)之和 与右边相等,距离是指某位到支点的距离; 题意:求区间内满足平衡数的数量 : 分析:很好这又是常见的数位dp , 不过不同的是我们这次 ...
- springBoot学习资料
转载:http://www.importnew.com/29363.html 官网搭建springBoot项目:https://www.cnblogs.com/lcplcpjava/p/7406253 ...
- java中使用nextLine(); 没有输入就自动跳过的问题?
[问题分析] 必要的知识:in.nextLine();不能放在in.nextInt();代码段后面否则in.nextLine();会读入"\n"字符,但"\n" ...
- 进入BIOS的步骤
查看自己的BIOS版本 $ systeminfo 对号入座,电脑进入BIOS的两种实用方法
- Mac 终端执行sql命令
https://www.cnblogs.com/sbj-dawn/p/6905930.html. 远程登录MYSQL数据库 > mysql -u username -p -h hostname ...
- red5服务器基础之red5环境的安装配置
red5的官网地址http://red5.org/ 下载完成之后解压 在系统变量配置RED5_HOME 在浏览器里输入 http://localhost:5080/ 配置ip地址在安装目录D:\red ...
- Java基础03-类型转换
1.自动转换 int->double char->String 例:double a=10; 2.强制类型转换 (类型名)表达式 注意:String不能强制转化为char public c ...