文档章节

redis学习笔记(三)之其他命令和特性

憨豆公子
 憨豆公子
发布于 2016/08/19 15:06
字数 982
阅读 42
收藏 0

redis学习笔记(一)之安装测试

redis学习笔记(二)之数据类型

一、基本特性

1、reids 默认端口:6379;

2、默认支持16个数据库,建立连接后自动选择0号数据库,建议不同的应用使用不同的redis,一个空的redis实例只占1MB左右,其命令不区分大小写。

二、安全特性

redis速度相当快,所以在一台比较好的服务器下,一个外部用户在一秒内可以进行15W次的密码尝试,这意味着你需要设定非常强大的密码来防止暴力破解。

vi编辑 redis.conf文件 找到下面进行保存修改 #requirepass foobared requirepass **** , 重启服务器, 再次进入127.0.0.1:6379> keys * (error) NOAUTH Authentication required. 会发现没有权限进行查询127.0.0.1:6379> auth aaa OK 输入密码则成功进入 每次进入的时候都要输入密码,还有种简单的方式: 还有种方式是直接登录授权:[root@bhz ~]# /usr/local/redis/bin/redis-cli -a aaa

三、命令拾遗

1、测试是否连接到redis

1)ping,返回pong,说明连接成功;

2)echo hi ,交互模式,若返回hi,说明连接成功。此命令可以理解为打印,注意打印的字符串中不能有空格。

2、返回满足的所有键 keys * (可以模糊匹配)

3、exists 是否存在指定的key

4、expire 设置某个key的过期时间,使用ttl查看剩余时间

5、persist 取消过期时间

6、select 选择数据库 数据库为0到15(一共16个数据库)默认进入的是0数据库

7、move [key] [数据库下标]将当前数据中的key 转移到其他数据库中

8、randomkey 随机返回数据库里的一个key

9、rename 重命名key

10、dbsize 查看数据库的key数量

11、info获取数据库信息

12、config get 实时传储收到的请求(返回相关的配置信息) config get * 返回所有配置

13、flushdb 清空当前数据库

14、flushall 清空所有数据库

四、事务管理

redis的事务非常简单,而且在执行的过程中出现问题,无法进行回滚操作,所以一般也只是当做缓存使用。

使用方法:

首先是使用multi方法打开事务 然后进行相关操作,这时操作的数据都会放入队列里进行保存 最后使用exec执行。如果不需要执行,使用discard方法取消事务。示例如下,k1、k2、k3设置成功,k4、k5被取消:

127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k1 1
QUEUED
127.0.0.1:6379> set k2 2
QUEUED
127.0.0.1:6379> set k3 3
QUEUED
127.0.0.1:6379> exec
1) OK
2) OK
3) OK
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> set k4 a
QUEUED
127.0.0.1:6379> set k5 b
QUEUED
127.0.0.1:6379> discard
OK
127.0.0.1:6379> keys *
1) "k3"
2) "k2"
3) "k1"

中途若某命令执行出错,则执行的命令不会回滚,示例如下:

127.0.0.1:6379> get name
"Tom"
127.0.0.1:6379> get age
"18"
127.0.0.1:6379> multi
OK
127.0.0.1:6379> incr age
QUEUED
127.0.0.1:6379> incr age
QUEUED
127.0.0.1:6379> incr name
QUEUED
127.0.0.1:6379> incr age
QUEUED
127.0.0.1:6379> exec
1) (integer) 19
2) (integer) 20
3) (error) ERR value is not an integer or out of range
4) (integer) 21
127.0.0.1:6379> get age
"21"
127.0.0.1:6379> get name
"Tom"

五、发布订阅

redis 提供了简单的发布订阅功能。 使用subscribe [频道] 进行订阅监听, 使用publish [频道] [发布内容] 进行发布消息广播。

示例如下:

在第一个客户端中对t1频道进行监听:

127.0.0.1:6379> SUBSCRIBE t1 
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "t1"
3) (integer) 1

在第二个客户端中对t1频道进行发布消息:

127.0.0.1:6379> publish t1 hello!
(integer) 1

此时,切回到第一个客户端,会发现自动监听了该消息:

127.0.0.1:6379> SUBSCRIBE t1 
Reading messages... (press Ctrl-C to quit)
1) "subscribe"
2) "t1"
3) (integer) 1
1) "message"
2) "t1"
3) "hello!"

 

© 著作权归作者所有

共有 人打赏支持
憨豆公子
粉丝 1
博文 6
码字总数 5366
作品 0
杭州
程序员
私信 提问
Redis学习笔记之基础知识(三)

Redis是什么、特点、优势 Redis是一个开源的使用C语言编写、开源、支持网络、可基于内存亦可持久化的日志型、高性能的Key-Value数据库,并提供多种语言的API。 它通常被称为数据结构服务器,...

残风vs逝梦
2016/08/07
22
0
redis学习笔记(一)之安装测试

以前比较懒,虽说都用redis,但大都是别人部署好后进行简单的使用,最近项目上线,时间较空,所以想在系统的学习一下redis,顺便也能熟悉熟悉linux系统(linux小白,也是正在学习阶段,如果有...

憨豆公子
2016/08/08
19
0
Redis学习笔记之Redis字符串String(五)

Redis学习笔记之Redis字符串String(五) 特点【转】 字符串类型最大的特点就是单key单value。 string是redis最基本的类型,而且string类型是二进制安全的。 redis的string可以包含任何数据。比...

残风vs逝梦
2016/10/05
36
0
redis学习笔记---redis的哨兵Sentinel

一、介绍: redis的sentinel系统用来管理多个redis服务器,可以实现一个功能上实现HA的集群。该系统主要执行三个任务: ①监控(Monitoring):Redis Sentinel实时监控主服务器和从服务器运行...

ivan-Zhao
2015/12/16
272
0
redis学习笔记---redis特性(expire、事务、数据排序、config命令)

一、键的生存时间expire redis可以使用expire命令设置一个键的生存时间,到时间后redis会自动删除它 命令: ①expire 设置生存时间(单位/秒) expire a 10 ②pexpire 设置生存时间(单位/毫秒...

ivan-Zhao
2015/12/14
139
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 我敢给你上菜,你敢吃么?

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌 :分享周深的单曲《缘起 (前世今生版)》人间多的是长了两只脚的恶人, 《缘起 (前世今生版)》- 周深 手机党少年们想听歌,请使劲儿...

小小编辑
45分钟前
57
6
万能的Python,还能用来制作高大上的进度条?

对于开发或者运维来说,使用Python去完成一些跑批任务,或者做一些监控事件是非常正常的情况。那么如何有效的监控任务的进度,除了在任务中加上log外,还能不能有另一种方式来了解任务进展到...

上海小胖
今天
8
0
如何嵌入 HTML 到 iPython notebook的输出

如何嵌入 HTML 到 iPython notebook的输出 iPython notebook中可以嵌入 HTML,也适用于JupyterHub和JupyterLab环境。不仅可以显示常用的HTML标签文本,甚至可以嵌入脚本交互操作和Frame分隔框...

openthings
今天
2
0
四、RabbitMQ3.7在CentOS7下的安装

安装依赖 sudo yum install -y gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git 创建yum源 vi /etc/yum.repos.d/rabbitmq-erlang.repo [......

XuePeng77
今天
2
0
android 延长Toast的时长

示例:myToast(5000,"hello"); public void myToast(int showTime, String msg) { Toast hello = Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT); new CountDownTimer(......

雨焰
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部