给大家提供 redis 开发过程当中经常会用到的一些命令,供大家参考!
redis set key
Redis SET 命令用于给键(key)设置值的。如果 key 已经存储其他值,SET 就覆写旧值。
语法结构如下:
set keyname 值
返回值:设置成功时,返回OK。
实例:
set freekey free;
结果:
redis get
Redis get命令用于获取键(key)中的值的。如果key不存在,返回 nil。
语法结构如下:
get keyname
返回值:返回keyname对应的值,如果key不存在,则返回nil。假如key中存的值不是字符串类型那么返回错误。
实例:
get freekey
结果:
redis -cli
Redis 命令是在redis 服务上执行的。那么要连接redis服务器需要一个redis客户端。Redis 客户端在我们之前下载的的 redis的安装包中。
我们要启动redis客户端,可以在DOS进入redis安装目录,然后通过执行redis -cli来启动客户端,该命令会连接本地的 redis 服务。如下图:
连接远程redis服务器
另起一个cmd,执行客户端连接到redis服务器,即服务端,进行测试,命令如下:
redis-cli.exe -h 127.0.0.1 -p 6379 -a 123456
其中127.0.01是redis的服务器地址,6379是端口,-a 123456是设置的密码。结果如下:更多关于 Redis 学习的文章,请参阅:NoSQL 数据库系列之 Redis ,本系列持续更新中。
Redis setnx
Redis setnx命令也是用于设置key的值,但是它和redis set命令有点不一样。只在key不存在的情况下, 给key设置,假如key已经存在,那么 redis setnx将啥都不做。
语法结构如下:
setnx keyname value
返回值:命令设置成功返回1,失败返回0。
实例:
setnx nxkey hello
setnx nxkey hello1
结果:
redis setex
redis setex命令也是用于设置key的值,但是它和redis set命令有点不一样,它可以额外设置key值的生存周期。
语法结构如下
SETEX key seconds value
返回值:命令成功时返回 OK 。当 seconds 参数不合法时, 命令将返回一个错误。如果key已经存在那么覆盖旧值。
实例
SETEX setexkey 100 hello
--指的是设定setexkey键的生存周期为100秒。
ttl setexkey
--查看setexkey键的剩余时间。
结果:
redis psetex
redis psetex命令:用于给redis设置key的值,并且附带上值的生存时间,不同于setex命令,它设置值的生存时间为毫秒。
语法结构如下:
PSETEX key seconds value
返回值:命令成功时返回 OK 。当 seconds 参数不合法时, 命令将返回一个错误。如果key已经存在那么覆盖旧值。
实例:
PSETEX psetexkey 5000 free
--指的是设定setexkey键的生存周期为1000毫秒。
pttl psetexkey
--查看psetexkey键的剩余时间。
结果:
redis getset
redis getset命令:用于给redis设置key的新值,返回之前旧的key值。如果key值之前不存在,那会报错。
语法结构如下:
getset key value
返回值:命令只有在 key 值存在过了,才会返回之前旧的 key 值,然后给 key 设置上新值。假如,key 之前不存在,那么直接报错返回 nil。
实例:
--给key设置值
set getsetkey "free"
--给key设置新值
getset getsetkey "free1"
--获取key值
get getsetkey
结果:
redis append
redis append 命令是用于对redis字符串进行追加,当键值已经存在的情况下,在键值的末尾追加上提供的value值。
语法结构:
append key value
返回值:如果key存在并且是一个字符串,append命令会把value的值追加到原来的键值末尾,并返回现有的字符串长度。
如果key不存在,那么他就直接对key值进行赋值,和set key命令一样。
实例:
--给key设值
set mykey "free"
--在key值后面追加字符
append mykey " redis "
--获取key值
get mykey
结果:
redis mset
redis mset命令用于给redis的键(key)赋值命令。不同于redis set,它可以一次给多个键同时进行赋值。
语法结构:
mset key1 value1 key2 value2 ...
返回值:总是返回OK。和redis set命令一样,当key值存在时,对其值进行覆盖。
实例:
--给key设值
mset mykey1 "free" mykey2 "free redis "
--获取键值
get mykey1
get mykey2
结果:
redis mget
redis mget命令用于批量获取给定的多个键(key)的值,它是redis mset命令的逆过程。
语法结构:
redis mget key1 key2...
返回值:返回给定的一个或者多个键(key)的值。如果给定的键不存在,那么这个键返回的值将是nil。
实例:
--给key设值
mset mykey1 "free" mykey2 "free redis "
--获取键值
mget mykey1 mykey2
结果:更多关于 Redis 学习的文章,请参阅:NoSQL 数据库系列之 Redis ,本系列持续更新中。
redis incr
redis incr命令用于对数值类型的键(key)值进行加1操作,然后返回加1之后的数值。
语法结构:
redis incr key
返回值:
- 如果key值存在,并为数值类型,那么对其加1进行返回。
- 如果key值不存在,那么当做0处理,返回1。
- 如果key值不是数值类型,那么会返回错误。
实例:
--给key设值
set key 2
--给key加1
incr key
--获取key的值
get key
--对不是数值的执行incr结果
set key "free"
incr key
结果:
redis decr
redis decr命令用于对数值类型的键(key)值进行递减操作(即减1操作),然后返回递减之后的结果值。
语法结构:
decr key
返回值:
- 如果key值存在,并为数值类型,那么对其递减1,然后返回结果值。
- 如果key值不存在,那么当做0处理,返回-1。
- 如果key值不是数值类型,那么会返回错误。
实例:
--给key设值
set key 2
--给key进行递减1
decr key
--获取key的值
get key
--对不是数值的执行decr结果
set key "free"
decr key
结果:
redis lindex key index
redis lindex key index命令主要用于获取链表类型中指定下标的数据。
语法结构:
lindex key index
#返回链表类型key中下标为index的数据。index表示链表的下标,0表示链表头第一个元素,-1表示链表尾最后一个元素。
返回值:指定链表下标index的元素。如果index指定的下标大于链表的长度,就会报下标越界。
实例:
--给链表插入数据
rpush mylist10 "hello" "free" "redis" "hello"
--获取链表数据
lindex mylist10 0
lindex mylist10 1
lindex mylist10 -1
结果:
redis ltrim
redis ltrim命令主要用于截取redis链表类型的指定下标区间内的元素,不在指定区间内的元素都会被删除。
语法结构:
ltrim key start end
key:#指定要截取的链表键。
start/end:#指定要截取的区间,start是开始,end是结尾。如ltrim key 0,1表示保留前两个元素,其它元素都删除掉。
start(end)都是表示链表的下标,链表下标是从0开始表示链表头,第一个元素。-1表示链表尾,最后一个元素。
返回值:命令执行成功返回OK,当key不是链表类型时,返回错误。下标区间不能超过链表的长度,会报下标越界错误。
实例:
--给链表插入数据
rpush mylist "hello" "free" "redis" "ok"
--截取中间两个元素
ltrim mylist 1 2
--查看截取后的链表元素
lrange mylist 0 -1
结果:
redis hget
redis hget命令主要用获取redis哈希表中域(field)的值。
语法结构:
hget key field
获取哈希表key中域(field)的值。
返回值:正常返回给定域的值,如果给定的域不存在,那么返回nil错误。
实例:
--创建一个哈希表
hset myhash field1 "free"
--获取指定域的值
hget myhash field1
结果:
redis hdel
redis hdel命令用于删除哈希表中指定的域(field),只可以批量移除多个域,不存在的域会被忽略。
语法结构:
hdel hash field field1 ....
hash #指定哈希表的键,field是哈希表的域。
返回值:返回被成功移除域的数量,不存在的域不计算在内。
实例:
--创建一个哈希表
hset myhash field1 "free"
hset myhash field2 "redis"
--判断指定的域是否存在
hdel myhash field1 field2 field3
结果:
节选自:https://www.wenjiangs.com/doc/q3km1de9s1t7