Redis整理第二波(启动、命令)
启动
配置数据库数量:
Redis默认开启16个数据库,不能像mysql自定义数据库名称,只能是数值,不能修改。
配置内存大小:
会生成一个和内存大小一样的文件。
maxmemory 200mb #在真实环境必须部署,否则物理内存会被耗尽。一般配置200mb/500mb/1gb/2gb。可以分散到多台服务器,和其它业务共享服务器,以充分利用资源。同时因为分散,防止单点故障,造成大量缓存失效。
启动
redis-server #默认找redis.conf配置文件
redis-server & #上面ctrl+c中断reis会退出,这个不会
redis-server redis6380.conf #指定配置文件,这样可以启动多个实例
注意两种启动方式的差异
ps -ef|grep redis
root 3511 1 0 16:29 ? 00:00:01 redis-server *:6379
root 3515 1 0 16:29 ? 00:00:01 redis-server 127.0.0.1:6380
注释掉redis.conf配置文件中的48行;# bind 127.0.0.1 ::1即可
设置访问密码
默认没有密码,可以随意访问。
redis速度相当快,在一个较好的服务器下,外部用户每秒可以进行15w此的密码尝试,这意味着必须指定非常强大的密码来防止暴力破解。
如果要加,打开redis.conf的
requirepass 123456 #480行,设置请求密码,这样访问时都需要先登录
127.0.0.1:6379> auth 123456 #客户端访问方式
jedis.auth(“123456”); #jedis访问方式
常用命令
redis-cli的使用之发送命令:
默认连接:IP 127.0.0.1 端口 6379 redis-cli 指定IP端口: redis-cli –h 127.0.0.1 –p 6379 Redis提供了PING-PONG机制,测试与客户端和服务器链接是否正常 redis-cli ping 或 redis-cli redis 127.0.0.1:6379>ping PONG
redis-cli的使用之命令返回值:
127.0.0.1:6379>SET test 123 OK 错误回复(以error开头,后面跟着错误信息) 127.0.0.1:6379>TEST (error) ERR unknown command 'TEST' 整数回复 127.0.0.1:6379>INCR test_incr (integer) 1 字符串回复(最长久的一种回复,双引号包裹) 127.0.0.1:6379>get test “123” 多行字符串回复 127.0.0.1:6379>KEYS * 1) "test_incr" 2) "test"
退出
127.0.0.1:6379> exit
关闭
127.0.0.1:6379> shutdown
keys
字符串类型是redis中最基本的数据类型,它能存储任何形式的字符串,包括二进制数据。
可以存储JSON化的对象、字节数组等。一个字符串类型键允许存储的数据最大容量是512MB。
赋值与取值: SET key value GET key 127.0.0.1:6379> keys * (empty list or set) 127.0.0.1:6379> set test 123 OK 127.0.0.1:6379> set test1 ab OK 127.0.0.1:6379> keys * 1) "test1" 2) "test" 127.0.0.1:6379> get test "123" 127.0.0.1:6379> get test1 "abc" 127.0.0.1:6379> get test2 (nil) 127.0.0.1:6379>
select
redis默认支持16个数据库,对外都是以一个从0开始的递增数字命名,可以通过参数database来修改默认数据库个数。
客户端连接redis服务后会自动选择0号数据库,可以通过select命令更换数据库,
说明:
Redis不支持自定义数据库名称。
Redis不支持为每个数据库设置访问密码。
Redis的多个数据库之间不是安全隔离的,FLUSHALL命令会清空所有数据库的数据。
例如选择1号数据库:
127.0.0.1:>SELECT OK 127.0.0.1:>GET test (nil)
获取符合规则的建名列表。
说明:
? 匹配一个字符
* 匹配任意个(包括0个)字符
[] 匹配括号间的任一字符,可以使用“-“表示范围。如a[a-d]匹配ab/ac/ad
\x 匹配字符x,用于转义符合,如果要匹配“?“就需要使用\?
KEYS * keys test[_]* keys t[a-d]
判断一个键是否存在
如果键存在则返回整数类型1,否则返回0。
127.0.0.1:6379> keys * 1) "test_incr" 2) "test" 127.0.0.1:6379> exists test (integer) 1 127.0.0.1:6379> exists test1 (integer) 0 127.0.0.1:6379>
删除键
可以删除一个或者多个键,多个键用空格隔开,返回值是删除的键的个数
127.0.0.1:6379> del test (integer) 1 127.0.0.1:6379> del test (integer) 0 127.0.0.1:6379> del test test_incr (integer) 1 127.0.0.1:6379>
获得键值的数据类型
返回值可能是string(字符串)、hash(散列类型)、list(列表类型)、set(集合类型)、zset(有序集合类型)。
127.0.0.1:6379> keys * 1) "test1" 2) "test" 127.0.0.1:6379> type test string 127.0.0.1:6379> type test1 string
清空所有数据库 flushall
127.0.0.1:6379> FLUSHALL OK
清空当前数据库flushdb
127.0.0.1:6379> FLUSHDB OK
Redis整理第二波(启动、命令)的更多相关文章
- celery 启动命令
celery 任务启动命令 celery worker -A _tasks.tasks -l info -E tasks 就是celery 任务的文件 celery beat启动命令 celer ...
- Redis、Nginx加入启动命令
1.redis加入系统启动命令 vim /etc/init.d/redis #!/bin/sh #chkconfig: 2345 80 90 # Simple Redis init.d script ...
- Redis介绍及常用命令
一 Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发 ...
- 转:Redis介绍及常用命令大全
一 Redis介绍 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年3月15日起,Redis的开发 ...
- Redis服务器的启动过程分析
转载于:http://www.itxuexiwang.com/a/shujukujishu/redis/2016/0216/127.html?1455808771 本文将通过分析代码来介绍Redis的 ...
- 2016022602 - redis安装和启动
redis安装 我使用的是ubuntu15.1,打开终端,输入命令:sudo apt-get install redis-server 将会在本机安装上redis. 启动redis 启动redis命令 ...
- redis 安装及启动关闭
1.redis下载 方式1:直接去官网下载 https://redis.io/download 方式2:通过命令下载 wget http://download.redis.io/releases/re ...
- redis设置开机启动
方式一 1.设置redis.conf中daemonize为yes,确保守护进程开启,也就是在后台可以运行.(设置为yes后,启动时好像没有redis的启动界面,不知道为什么) #vi编辑redis安装 ...
- 数据库之redis篇(2)—— redis配置文件,常用命令,性能测试工具
redis配置 如果你是找网上的其他教程来完成以上操作的话,相信你见过有的启动命令是这样的: 启动命令带了这个参数:redis.windows.conf,由于我测试环境是windows平台,所以是这个 ...
随机推荐
- 洛谷P3178 [HAOI2015]树上操作(线段树)
题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个操作,分为三种:操作 1 :把某个节点 x 的点权增加 a .操作 2 :把某个节点 x 为根的子树中所有点的点权都增加 ...
- CSS再学
css的注释 /*.......*/ 直接在html代码中写css <p style="color: rebeccapurple;font-size: 18px">Ha ...
- 2019.2.25考试T3, 离线+线段树
\(\color{#0066ff}{题解}\) #include<bits/stdc++.h> #define LL long long LL in() { char ch; LL x = ...
- Java内存区域与内存溢出异常---对象的创建
对象的创建 在语言层面,创建一个对象通常仅仅是一个new关键字而已.在虚拟机层面,虚拟机遇到一个new指令时,首先回去检查这个指令的参数是能在常量池中定位到一个类的符号引用,并检查这个符号引用代表 ...
- msf连接PostgreSQL数据库
一.启动PostgreSQL服务######################################################################?root@root:~# ...
- Qt 学习之路 2(4):信号槽
Home / Qt 学习之路 2 / Qt 学习之路 2(4):信号槽 Qt 学习之路 2(4):信号槽 豆子 2012年8月23日 Qt 学习之路 2 110条评论 信号槽是 Qt 框架引以 ...
- Go语言基础之12--Channel
一.不同goroutine之间如何进行通讯? 1.全局变量和锁同步 缺点:多个goroutine要通信时,定义太多的全局变量(每个全局变量功能不一样),不好维护 2.Channel 二.channel ...
- c++中enum 如何使用(转)
ENUM概况 enum枚举类型是C/C++中的一种数据类型,与struct和class一样是用户自定义的类型,其特点在于enum类型的变量取值是有限的,是可以一一列举出来的. ENUM定义 C++ e ...
- js apply和call
apply()和call()这两个方法的作用是一样的,都是在特定作用域中调用函数,等于设置函数体内this对象的只,以扩充函数赖以运行的作用域 apply:方法能劫持另外一个对象的方法,继承另外一个对 ...
- java——变量
1.静态变量: 随着类的加载而生成并初始化 随着类的消失而消失 2.成员变量: 随对象的加载而生成并初始化 随对象被回收而消失 3.局部变量: 作用范围由{}决定 随方法调用而创建 随方法的执行完毕而 ...