redis命令一

Published on in sql with 88 views

Step1.在客户端上执行Redis命令

本地

在本地,可以直接输入一个redis-cli命令来连接Redis客户端。

$redis-cli
redis 127.0.0.1:6379>

远程

如果是在远程的redis服务上执行命令,则连接redis客户端时还需要三个参数:主机-h 端口-p 密码-a

$redis-cli -h 127.0.0.1 -p 6379 -a "youpass"
redis 127.0.0.1:6379>

Redis键(key)

Redis的键命令是用于管理redis的键,就是增删改查过期等操作。
基本语法命令 键名

redis 127.0.0.1:6379>set test test
OK
redis 127.0.0.1:6379>del test
(integer) 1

下表给出了一些键相关的基本命令:
命令 | 描述 | 返回值
— | — | —
DEL KEY_NAME|删除已存在的键,不存在则会被忽略|被删除key的数量
DUMP KEY_NAME|用于序列化给定key并返回被序列化的值|不存在则返回nil,否则是序列化后的值
EXISTS KEY_NAME|用于检查给定key是否存在|存在返回1,否则返回0
Expire KEY_NAME TIME_IN_SECONDS(expire key 60)|用于设置key过期时间,key过期后将不再可用|成功返回1,失败返回0
Expireat KEY_NAME TIME_IN_UNIX_TIMESTAMP|以unix时间戳格式设置key的过期时间,key过期后将不再可用|成功返回1 失败返回0
PEXPIRE key milliseconds|与Expire命令类似,但是PEXPIRE是以毫秒为单位设置key的生存时间,EXPIRE是以秒为单位|设置成功返回1,失败则返回0
PEXPIREAT KEY_NAME TIME_IN_MILLISECONDS_UNIX_TIMESTAMP|这个则是与Expireat类似,但唯一差别是,它是以毫秒计|设置成功返回1,失败则返回0
KEYS PATTERN|查找所有符合给定模式pattern的key|返回给定模式的key列表(Array)
MOVE KEY_NAME DESTINATION_DATABASE|将当前数据库的key移动到给定的数据库db中|移动成功返回1,失败(key不存在,数据库不存在,目标数据库有相同key)返回0
PERSIST KEY_NAME|用于移除给定key的过期时间,使key永不过期|过期时间移除成功返回1,如果key存在、没有设置过期时间,则返回0。
PTTL KEY_NAME|以毫秒为单位返回key剩余过期时间|当key不存在时返回-2,key存在但没有设置剩余生存时间返回-1,否则以毫秒为单位返回key的剩余生存时间
TTL KEY_NAME|以秒为单位返回key的剩余过期时间|不存在key返回-2,没有设置过期时间返回-1,否则以秒为单位返回key的剩余生存时间
RANDOMKEY|从当前数据库中随机返回一个key|数据库为空返回nil,否则返回一个key
RENAME OLD_KEY_NAME NEW_KEY_NAME|用于修改key的名称|成功时提示OK,失败时返回一个错误
RENAMENX OLD_KEY_NAME NEW_KEY_NAME|用于在新的key不存在时修改key的名称|修改成功返回1,如果新key是已经存在的,则返回0
TYPE KEY_NAME|用于返回key所存储的值的类型|none(key不存在)、string、list、set、zset、hash

Redis字符串命令(String)

Redis字符串相关命令用于管理redis字符串值,基本语法如下:

redis 127.0.0.1:6379>COMMAND KEY_NAME
redis 127.0.0.1:6379>set key value
redis 127.0.0.1:6379>get key
"value"

下表给出了一些常用的字符串命令:
命令 | 描述|返回值
—|—|—
SET KEY_NAME VALUE|用于设置给定key的值,如果key已经存储其他值,set就覆写旧值,且无视类型|2.6.12以前版本,总是返回OK。大于2.6.12版本,如果操作成功完成时才返回OK
GET KEY_NAME|用于获取指定key的值|返回key的值,如果key不存在时返回nil。如果key不是字符串类型,那么返回一个错误
GETRANGE KEY_NAME start end|用于获取存储在指定key中字符串的子字符串。字符串的截取范围由start和end两个偏移量决定(包括start和end)|截取得到的子字符串
GETSET KEY_NAME VALUE|用于设置指定key的值,并返回key的旧值|返回key旧值,如果key不存在时返回nil,当key存在但不是字符串时返回一个错误
GETBIT KEY_NAME OFFSET|用于对key所存储的字符串值获取指定偏移量上的位(bit)|字符串值指定偏移量上的位(bit),当偏移量OFFSET比字符串值长度大,或者key不存在时返回0
MGET KEY1 KEY2 ..KEYN|返回所有(一个或多个)给定key的值,如果某个key不存在则返回这个key的特殊值nil|一个包含所有给定key的值的列表
SETBIT KEY_NAME OFFSET|用于对key所存储的值设置或清除指定偏移量上的位(bit)|指定偏移量原来存储的位
SETEX KEY_NAME TIMEOUT VALUE(setex key 60 redis)|为指定的key设置值及其过期时间。如果key已经存在,SETEX命令将会替换掉旧值|设置成功返回OK
SETNX KEY_NAME VALUE|Redis Setnx(==SET== if ==N==ot e==X==ists) 命令在指定的 key 不存在时,为 key 设置指定的值。|设置成功返回1.失败返回0
SETRANGE KEY_NAME OFFSET VALUE|用指定的字符串覆盖给定key所存储的字符串值,覆盖的位置从偏移量offset开始。|被修改后的字符串长度
STRLEN KEY_NAME|用于获取指定key所存储的字符串的长度。当key存储的不是字符串时,返回一个错误|字符串的长度。当key不存在时返回0
MSET KEY1 VALUE1 .. KEYN VALUEN|同事设置一个或多个key-value对|总是返回OK
INCR KEY_NAME|将 key 中储存的数字值增一。 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 INCR 操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 本操作的值限制在 64 位(bit)有符号数字表示之内。|执行 INCR 命令之后 key 的值。
DECR KEY_NAME|将 key 中储存的数字值减一。 如果 key 不存在,那么 key 的值会先被初始化为 0 ,然后再执行 DECR 操作。 如果值包含错误的类型,或字符串类型的值不能表示为数字,那么返回一个错误。 本操作的值限制在 64 位(bit)有符号数字表示之内。|执行命令之后 key 的值
APPEND KEY_NAME NEW_VALUE|用于为指定的 key 追加值。 如果 key 已经存在并且是一个字符串, APPEND 命令将 value 追加到 key 原来的值的末尾。 如果 key 不存在, APPEND 就简单地将给定 key 设为 value|追加指定值之后,key中字符串的长度

Redis哈希命令(HASH)

Redis hash是一个String类型的字段和值的映射表,hash适合用于存储对象。Redis中每个hash可以存储2^32-1个键值对

==实例==

127.0.0.1:6379>HMSET testkey name "redis yaya" description "redis test ya" likes 20 visitors 1000
127.0.0.1:6379>HGETALL testkey
1) "name"
2) "redis yaya"
3) "description"
4) "redis test ya"
5) "likes"
6) "20"
7) "visitors"
8) "1000"

== 下表给出了一些常用的HASH命令 ==
命令|描述|返回值
—-|—-|—-
HDEL KEY field1[fieldn]| 删除一个或多个哈希表字段|被成功删除字段的数量,不包括呗忽略的字段
HEXISTS KEY_NAME FIELD_NAME|用于查看哈希表的指定字段是否存在|如果哈希表含有给定字段返回1,如果哈希表不含有给定字段或key不存在返回0
HGET KEY_NAME FIELD_NAME|用于返回哈希表指定字段的值|返回指定字段的值。如果字段或key不存在返回nil
HGETALL KEY_NAME|用于返回hash表中所有的字段和值。返回值的长度是哈希表大小的两倍|以列表形式返回哈希表的字段及字段值。若key不存在,返回空列表
HINCRBY KEY_NAME FIELD_NAME INCR_BY_NUMBER|用于为哈希表的字段值加上指定的增量值,增量为负进行减法操作|执行HINCRBY命令后,哈希表中字的值
HKEYS key|用于获取哈希表中的所有域(field)|包含哈希表中的所有域(field)列表。当key不存在时返回一个空列表
HLEN KEY_NAME|用于获取哈希表字段的数量|哈希表中字段的数量。当key不存在时返回0
HMGET KEY_NAME FIELD1…FIELDN|用于返回哈希表中,一个或多个给定字段的值,如果指定的字段不存在于哈希表,name返回一个nil|包含多个给定字段关联值的表,表值的排列顺序和指定字段的请求顺序一样
HMSET KEY_NAME FIELD1 VALUE1 …FILEDN VALUEN|用于同时将多个field-value对设置到哈希表中,此命令会覆盖哈希表中已存在的字段。|如果执行成功返回OK
HSET KEY_NAME FIELD VALUE|用于为哈希表中的字段赋值,若哈希表不存在,一个新的表被创建并进行HSET操作。如果字段已经存在于哈希表中,旧值将会被覆盖|如果字段是哈希表中的一个新建字段,并且值设置成功,返回 1 。 如果哈希表中域字段已经存在且旧值已被新值覆盖,返回 0 。
HSETNX KEY_NAME FIELD VALUE|用于为哈希表中不存在的字段赋值|设置成功返回1.如果给定字段已经存在且没有操作被执行返回0
HVALS KEY_NAME FIELD VALUE|用于返回哈希表中所有域(filed)的值|包含哈希表中所有域(filed)值的列表。当key不存在时返回一个空表

Responses