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: 查 ...
随机推荐
- Django 13 admin和auth系统、权限问题
一.auth系统 auth系统的数据表 #User:User是auth模块中维护用户信息的关系模式(继承了models.Model), 数据库中该表被命名为auth_user. #Group:User ...
- js 联动下拉菜单
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- ul li做横向导航栏例子
/* ul li以横排显示 */ /* 所有class为menu的div中的ul样式 */ div.menu ul { list-style:none; /* 去掉ul前面的符号 */ margin: ...
- C#工具类之Xml序列化扩展类
using System; using System.IO; using System.Linq; using System.Runtime.Serialization; using System.T ...
- 5.监听器(Listener)
1.监听器简介: 监听器主要用来监听对象的创建,属性的变化,是一个实现特定接口的普通Java类. Listener接口与事件对应表: 与 ServletContext 有关 ServletContex ...
- log4j2重复打印日志问题解决
log4j2.xml <?xml version="1.0" encoding="UTF-8"?> <Configuration> &l ...
- Error in event handler for "el.form.change": "TypeError: value.getTime is not a function"
首先说一下我使用的实际场景 html代码: js代码: 首先说明出现原因,elementUI的日期选择器[el-date-picker]在加上格式 value-format="yyyy-MM ...
- Spring---数据缓存(未完待续)
1.为什么需要数据缓存? 程序的瓶颈大都在数据库,而内存的速度是远远大于硬盘的,当我们需要重复读取相同数据时,一次又一次的请求数据库或者远程服务,导致大量的时间浪费在数据库或者 远程服务上,导致程序性 ...
- Vim Plugins for Linux
Usage 1.Set up Vundle: git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vi ...
- 获取tomcat路径
String serverPath = System.getProperty("catalina.home");