连接控制
QUIT :退出,关闭连接
代码实例:连接 退出
telnet localhost 6379
QUIT
AUTH : 密码验证
举例说明
1、首先需要在redis的配置文件redis.conf中requirepass注释掉的内容,设置需要密码连接,否则auth任何密码都通过
2、重新启动redis
3、验证 auth testpassword,testpassword是我在配置文件中设置的requirepass testpassword
4、redis 服务器的速度众所周知,因此官方文件中 提醒设置比较复杂的密码,防止机器破解
telnet localhost 6379
Escape character is '^]'.
auth dsddsd
-ERR invalid password
keys global*
-ERR operation not premitted
auth ddddd
-ERR invalid password
auth testpassword
+OK
管理数据操作
EXISTS :判断一个键是否存在;存在返回 1;否则返回0;
举例:
EXISTS burce
:0
SET bruce 10
paitoubing
+OK
SET test 5
paitoubing
+OK
-ERR unknown command 'ing'
EXISTS bruce
:1
上面的程序
EXISTS bruce是否存在,结果是不存在,然后set一个key为bruce 数据长度为10的数据,如果数据长度操作设置的值,多余的字节会当作redis命令来处理
DEL :删除某个key,或是一系列key;DEL key1 key2 key3 key4
TYPE : 返回某个key元素的数据类型 ( none:不存在,string:字符,list,set,zset,hash)
KEYS : 返回匹配的key列表 (KEYS foo*:查找foo开头的keys)
RANDOMKEY : 随机获得已经存在的key
RENAME : 更改key的名字,如果名字存在则更改失败
DBSIZE : 返回当前数据库的key的总数
EXPIRE : 设置某个key的过期时间(秒),(EXPIRE bruce 1000:设置bruce这个key1000秒后系统自动删除)
TTL : 查找某个key还有多长时间过期,返回时间秒
SELECT : 选择数据库
MOVE : 把key从一个数据库转移到另外一个库
FLUSHDB : 清空当前数据库数据
FLUSHALL :清空所有数据库数据
字符串类型的数据操作
SET 存一个数据到数据库 SET keyname datalength data (SET bruce 10 paitoubing:保存key为burce,字符串长度为10的一个字符串paitoubing到数据库)
GET :获取某个key 的value值
GETSET GETSET可以理解成获得的key的值然后SET这个值,更加方便的操作 (SET bruce 10 paitoubing,这个时候需要修改bruce变成1234567890并获取这个以前的数据paitoubing,GETSET bruce 10 1234567890)
MGET 一次性获得多个key的数据 (MGET uid:1:name uid:1:email uid:1:ciy)
SETNX SETNX与SET的区别是SET可以创建与更新key的value,而SETNX是如果key不存在,则创建key与value数据
SETEX SETEX = SET + EXPIRE,貌似我的这个版本没有办法测试
MSET 一次性设置多个参数的值(MSET uid:1:name shjuto uid:1:email [url=mailto:shjuto@gmail.com]shjuto@gmail.com[/url] uid:1:city 8 回车 nanchang)最后一个值需要回车输入,和SET一样,不知为啥。
MSETNX 如果设置的key不存在的话,或是叫做新key的话;一次性设置多个参数的值(MSET uid:1:name shjuto uid:1:email [url=mailto:shjuto@gmail.com]shjuto@gmail.com[/url] uid:1:city 8 回车 nanchang)最后一个值需要回车输入,和SET一样,不知为啥。
INCR 自增,有点类是mysql incr.(INCR global:uid)
INCRBY 自增 +length ,(INCRBY uid 5)原来的基础+5=result
DECR 自减
* DECRBY 自减 -lenght
APPEND 一个例子足以说明
redis> exists mykey
(integer) 0
redis> append mykey "Hello "
(integer) 6
redis> append mykey "World"
(integer) 11
redis> get mykey
"Hello World"
SUBSTR 一个例子足以说明一切,LIKE PHP ‘S STYLE
redis> set s "This is a string"
OK
redis> substr s 0 3
"This"
redis> substr s -3 -1
"ing"
redis> substr s 0 -1
"This is a string"
redis> substr s 9 100000
" string"
连接控制
QUIT 关闭连接
AUTH (仅限启用时)简单的密码验证
适合全体类型的命令
EXISTS key 判断一个键是否存在;存在返回 1;否则返回0;
DEL key 删除某个key,或是一系列key;DEL key1 key2 key3 key4
TYPE key 返回某个key元素的数据类型 ( none:不存在,string:字符,list,set,zset,hash)
KEYS pattern 返回匹配的key列表 (KEYS foo*:查找foo开头的keys)
RANDOMKEY 随机获得一个已经存在的key,如果当前数据库为空,则返回空字符串
RENAME oldname newname更改key的名字,新键如果存在将被覆盖
RENAMENX oldname newname 更改key的名字,如果名字存在则更改失败
DBSIZE返回当前数据库的key的总数
EXPIRE设置某个key的过期时间(秒),(EXPIRE bruce 1000:设置bruce这个key1000秒后系统自动删除)注意:如果在还没有过期的时候,对值进行了改变,那么那个值会被清除。
TTL查找某个key还有多长时间过期,返回时间秒
SELECT index 选择数据库
MOVE key dbindex 将指定键从当前数据库移到目标数据库 dbindex。成功返回 1;否则返回0(源数据库不存在key或目标数据库已存在同名key);
FLUSHDB 清空当前数据库中的所有键
FLUSHALL 清空所有数据库中的所有键
处理字符串的命令
SET key value 给一个键设置字符串值。SET keyname datalength data (SET bruce 10 paitoubing:保存key为burce,字符串长度为10的一个字符串paitoubing到数据库),data最大不可超过1G。
GET key获取某个key 的value值。如key不存在,则返回字符串“nil”;如key的值不为字符串类型,则返回一个错误。
GETSET key value可以理解成获得的key的值然后SET这个值,更加方便的操作 (SET bruce 10 paitoubing,这个时候需要修改bruce变成1234567890并获取这个以前的数据paitoubing,GETSET bruce 10 1234567890)
MGET key1 key2 … keyN 一次性返回多个键的值
SETNX key value SETNX与SET的区别是SET可以创建与更新key的value,而SETNX是如果key不存在,则创建key与value数据
MSET key1 value1 key2 value2 … keyN valueN 在一次原子操作下一次性设置多个键和值
MSETNX key1 value1 key2 value2 … keyN valueN 在一次原子操作下一次性设置多个键和值(目标键不存在情况下,如果有一个以上的key已存在,则失败)
INCR key 自增键值
INCRBY key integer 令键值自增指定数值
DECR key 自减键值
DECRBY key integer 令键值自减指定数值
处理 lists 的命令
RPUSH key value 从 List 尾部添加一个元素(如序列不存在,则先创建,如已存在同名Key而非序列,则返回错误)
LPUSH key value 从 List 头部添加一个元素
LLEN key 返回一个 List 的长度
LRANGE key start end从自定的范围内返回序列的元素 (LRANGE testlist 0 2;返回序列testlist前0 1 2元素)
LTRIM key start end修剪某个范围之外的数据 (LTRIM testlist 0 2;保留0 1 2元素,其余的删除)
LINDEX key index返回某个位置的序列值(LINDEX testlist 0;返回序列testlist位置为0的元素)
LSET key index value更新某个位置元素的值
LREM key count value 从 List 的头部(count正数)或尾部(count负数)删除一定数量(count)匹配value的元素,返回删除的元素数量。
LPOP key 弹出 List 的第一个元素
RPOP key 弹出 List 的最后一个元素
RPOPLPUSH srckey dstkey 弹出 _srckey_ 中最后一个元素并将其压入 _dstkey_头部,key不存在或序列为空则返回“nil”
处理集合(sets)的命令(有索引无序序列)
SADD key member增加元素到SETS序列,如果元素(membe)不存在则添加成功 1,否则失败 0;(SADD testlist 3 \n one)
SREM key member 删除SETS序列的某个元素,如果元素不存在则失败0,否则成功 1(SREM testlist 3 \N one)
SPOP key 从集合中随机弹出一个成员
SMOVE srckey dstkey member 把一个SETS序列的某个元素 移动到 另外一个SETS序列 (SMOVE testlist test 3\n two;从序列testlist移动元素two到 test中,testlist中将不存在two元素)
SCARD key 统计某个SETS的序列的元素数量
SISMEMBER key member 获知指定成员是否存在于集合中
SINTER key1 key2 … keyN 返回 key1, key2, …, keyN 中的交集
SINTERSTORE dstkey key1 key2 … keyN 将 key1, key2, …, keyN 中的交集存入 dstkey
SUNION key1 key2 … keyN 返回 key1, key2, …, keyN 的并集
SUNIONSTORE dstkey key1 key2 … keyN 将 key1, key2, …, keyN 的并集存入 dstkey
SDIFF key1 key2 … keyN 依据 key2, …, keyN 求 key1 的差集。官方例子:
key1 = x,a,b,c
key2 = c
key3 = a,d
SDIFF key1,key2,key3 => x,b
SDIFFSTORE dstkey key1 key2 … keyN 依据 key2, …, keyN 求 key1 的差集并存入 dstkey
SMEMBERS key 返回某个序列的所有元素
SRANDMEMBER key 随机返回某个序列的元素
处理有序集合(sorted sets)的命令 (zsets)
ZADD key score member 添加指定成员到有序集合中,如果目标存在则更新score(分值,排序用)
ZREM key member 从有序集合删除指定成员
ZINCRBY key increment member 如果成员存在则将其增加_increment_,否则将设置一个score为_increment_的成员
ZRANGE key start end 返回升序排序后的指定范围的成员
ZREVRANGE key start end 返回降序排序后的指定范围的成员
ZRANGEBYSCORE key min max 返回所有符合score >= min和score <= max的成员 ZCARD key 返回有序集合的元素数量 ZSCORE key element 返回指定成员的SCORE值 ZREMRANGEBYSCORE key min max 删除符合 score >= min 和 score <= max 条件的所有成员
排序(List, Set, Sorted Set)
SORT key BY pattern LIMIT start end GET pattern ASC|DESC ALPHA 按照指定模式排序集合或List
SORT mylist
默认升序 ASC
SORT mylist DESC
SORT mylist LIMIT 0 10
从序号0开始,取10条
SORT mylist LIMIT 0 10 ALPHA DESC
按首字符排序
SORT mylist BY weight_*
SORT mylist BY weight_* GET object_*
SORT mylist BY weight_* GET object_* GET #
SORT mylist BY weight_* STORE resultkey
将返回的结果存放于resultkey序列(List)
持久控制
SAVE 同步保存数据到磁盘
BGSAVE 异步保存数据到磁盘
LASTSAVE 返回上次成功保存到磁盘的Unix时间戳
SHUTDOWN 同步保存到服务器并关闭 Redis 服务器(SAVE+QUIT)
BGREWRITEAOF 当日志文件过长时重写日志文件
远程控制命令
INFO 提供服务器的信息和统计信息
MONITOR 实时输出所有收到的请求
SLAVEOF 修改复制选项
redis目前提供四种数据类型:string,list,set及zset(sorted set)。
* string是最简单的类型,你可以理解成与Memcached一模一个的类型,一个key对应一个value,其上支持的操作与Memcached的操 作类似。但它的功能更丰富。
* list是一个链表结构,主要功能是push、pop、获取一个范围的所有值等等。操作中key理解为链表的名字。
* set是集合,和我们数学中的集合概念相似,对集合的操作有添加删除元素,有对多个集合求交并差等操作。操作中key理解为集合的名字。
* zset是set的一个升级版本,他在set的基础上增加了一个顺序属性,这一属性在添加修改元素的时候可以指定,每次指定后,zset会自动重新按新的 值调整顺序。可以理解了有两列的mysql表,一列存value,一列存顺序。操作中key理解为zset的名字。
协议
redis目前只有基于TCP的文本协议,与memcache类似,有一些改进。
客户端通常发送
命令 参数… 值字节数\r\n
值\r\n
服务端的返回,根据第一个字节,可以判断:
- 错误信息
+ 普通文本信息
$ 变长字节数,$6表示CRLF之后有6个字节的字符
: 返回一个整数
* 返回组数,即*6表示CRLF之后将返回6组变长字符
注意事项:
Key不可包含空格或者回车符
Key不要过长或过短,应使其有意义,如”comment:1234:reply.to”
相关推荐
Redis指令手册中文版 Redis是一种基于内存的NoSQL数据库,具有高性能、低延迟、支持事务等特点。本手册将详细介绍Redis的各种指令,帮助开发者快速掌握Redis的使用。 连接控制 1. QUIT:退出、关闭连接 使用QUIT...
Redis 3.2 手册是数据库开发人员和运维人员的重要参考资料,特别是对于那些使用或打算使用Redis作为其系统缓存、数据存储解决方案的人来说。Redis是一个开源的、高性能的键值存储系统,常用于实现数据库、缓存、消息...
Redis命令参考手册提供了对这些数据类型进行操作的详细指令说明和时间复杂度分析。 1. DEL命令用于删除一个或多个key。如果key不存在,DEL命令会忽略它们。DEL命令对不同数据类型的key具有不同的时间复杂度。对于...
本文档是 Redis Command Reference 和 Redis Documentation 的中文翻译版:所有 Redis 命令文档均已翻译完毕, Redis 最重要的一部分主题(topic)文档,比如事务、持久化、复制、Sentinel、集群等文章也已翻译完毕...
本书《Redis入门手册》详细介绍了Redis的基础知识和操作,非常适合初学者使用。 首先,文档强调了Redis支持的五种数据类型,包括string(字符串)、hash(哈希)、list(列表)、set(集合)和sorted set(有序集合...
### Redis中文入门手册知识点解析 #### 一、Redis简介 **Redis** 是 **REmote DIctionary Server** 的缩写,它是一个采用 **ANSI C** 语言编写的、支持网络连接、可基于内存同时支持持久化的 **键值(Key-Value)** ...
redis入门手册(中文版)edis简介........................................................................................................................3 2) 数据类型.......................................
### Redis集群搭建手册 #### 一、环境准备与Redis安装 在进行Redis集群的搭建之前,首先需要确保服务器环境已准备好。本节介绍如何在Linux环境下安装并配置Redis。 ##### 安装Redis 3.0 为了安装Redis,可以通过...
### 实用手册:Redis全面总结 #### 一、Redis简介 **Redis**(Remote Dictionary Server)是一种开源的、高性能的键值(Key-Value)存储系统。它支持多种数据结构,如字符串(strings)、散列(hashes)、列表...
### Redis 入门手册知识点详解 #### 一、Redis简介 Redis是一个开源的高性能键值(Key-Value)存储系统,采用ANSI C语言编写而成,支持网络通信,并且能够实现基于内存的数据存储以及数据的持久化。其核心优势在于...
总结性的小巧redis使用手册,其中包含了五种数据结构的使用函数方法,以及参数对应的介绍,十分方便,适合作为初学者查看文档,其格式为rtf格式,可直接作为文本打开
Redis是一款高性能的键值对数据库,常用于数据缓存、消息队列以及数据持久化等场景。"redis_2021.zip" 是一个包含了 Redis 集成环境的压缩包,特别适合在Windows系统上快速搭建Redis服务。无需复杂的安装步骤,只需...
总的来说,Redis因其高效、灵活的数据结构和丰富的操作指令,成为许多分布式系统、缓存服务和实时数据处理场景的首选数据库。掌握Redis的基本使用和配置对于任何IT从业者来说都是非常有价值的。
首先,我们有“redis开发手册.docx”,这是一个详细的操作指南,涵盖了Redis的各种数据类型以及它们的操作指令。Redis支持五大数据类型:字符串(Strings)、哈希(Hashes)、列表(Lists)、集合(Sets)和有序集合(Sorted ...
Redis 还提供了一系列高效的操作指令,如 GET、SET、LPUSH、RPOP、SADD、SMEMBERS、HSET、HGET、ZADD、ZRANGE 等,方便对这些数据结构进行操作。 接下来是 Redis 集群的实战场景。Redis 集群可以解决单实例的性能...
### 企业架构队列缓存中间件分布式Redis部署运维开发手册 #### 一、背景描述及其方案设计 ##### 1、业务背景描述 本手册基于一个互联网动态站点商城的业务需求进行编写,业务运行时间跨度从2016年9月至2017年6月...