ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

redis命令大全

2021-06-02 14:02:06  阅读:143  来源: 互联网

标签:127.0 6379 0.1 元素 redis value 命令 key 大全


1、connection

redis-cli默认连接127.0.0.1:6379

redis-cli -h 127.0.0.1 -p 6379

auth password

select index

 

2、keys

del key1 key2 ...

exists key1 key2 ...
rename key newkey

renamenx key newkey

keys pattern

支持glob风格通配符规则。

符号 含义
? 匹配一个字符
* 匹配任意个(包括0个)字符
[] 匹配中括号间的任一字符,可以使用-符号表示一个范围,如a[b-d]可以匹配ab、ac和ad
\x 匹配字符x,用于转义字符,如要匹配?就需要使用\?

object encoding key #查看对象编码

type key #获取key的类型

 

3、server

slowlog #慢查询日志(不包括IO操作,只针对命令执行时间)

shutdown save|nosave

这个命令执行如下操作:

  1. 停止所有客户端;
  2. 如果配置了save 策略 则执行一个阻塞的save命令;
  3. 如果开启了AOF,则刷新aof文件;
  4. 关闭redis服务进程(redis-server);

如果配置了持久化策略,那么这个命令将能够保证在关闭redis服务进程的时候数据不会丢失,如果仅仅在客户端执行SAVE 命令,然后 执行quit命令,那么数据的完整性将不会被保证,因为其他客户端可能在执行这两个命令的期间修改数据库的数据。

注意: 一个没有配置持久化策略的redis实例 (没有aof配置, 没有 “save” 命令) 将不会 在执行shutdown命令的时候转存一个rdb文件

SAVE 和 NOSAVE 修饰符

  • SHUTDOWN SAVE #能够在即使没有配置持久化的情况下强制数据库存储;
  • SHUTDOWN NOSAVE #能够在配置一个或者多个持久化策略的情况下阻止数据库存储;

MEMORY USAGE #返回一个key和它值在RAM中占用的字节数,实际数据为空,但是存储时仍然耗费了一些内存,这些内存用于Redis 服务器维护内部数据结构。随着key和value的增大,内存使用量和key 大小基本成线性关系。

MEMORY STATS #将服务器的内存使用情况以数组情况返回

flushdb 

flushall async

dbsize

command count #redis命令总数

client getname

client setname

client list

client id

 

4、string

append key value 追加

getrange key start end 随机访问

127.0.0.1:6379> append score 10
(integer) 2
127.0.0.1:6379> append score 35
(integer) 4
127.0.0.1:6379> append score 45
(integer) 6
127.0.0.1:6379> type score
string
127.0.0.1:6379> get score
"103545"
127.0.0.1:6379> getrange score 0 1
"10"
127.0.0.1:6379> getrange score 2 3
"35"
127.0.0.1:6379> getrange score 4 5
"45"

decr key #原子性减1

decrby key n #原子性减n

get key

getset

127.0.0.1:6379> get age
"50"
127.0.0.1:6379> getset age 10
"50"
127.0.0.1:6379> get age
"10"

incr key #原子性加1

incrby key n #原子性加n

incrbyfloat  key  value  #增加浮点数

mset  key1  value1  key2  value2 ...  #原子的,不存在只更新一部分key的情况

mget  key1 key2 ... 

msetnx key1  value1  key2  value2 ...  #原子的,只要有一个key不存在,则存在的key也不更新

127.0.0.1:6379> keys *
1) "score"
2) "age"
127.0.0.1:6379> get age
"10"
127.0.0.1:6379> msetnx age 20 length 50
(integer) 0
127.0.0.1:6379> get age
"10"

strlen key #获取长度

psetex key milliseconds value

setex key seconds value

setnx key value

SET key value [EX seconds] [PX milliseconds] [NX|XX]

  • EX seconds #设置键key的过期时间,单位时秒
  • PX milliseconds #设置键key的过期时间,单位时毫秒
  • NX #只有键key不存在的时候才会设置key的值
  • XX #只有键key存在的时候才会设置key的值

命令 SET resource-name anystring NX EX max-lock-time 是一种用 redis 来实现锁机制的简单方法。

解锁脚本

if redis.call("get",KEYS[1]) == ARGV[1]
then
    return redis.call("del",KEYS[1])
else
    return 0
end

 

5、hash

redis不支持类型嵌套,比如hash类型的字段只能是string,不能是list或其他类型

hset  key  field  value  #不存在则set,存在则更新

hsetnx  key  field  value  #不存在时,才set,原子操作

hget  key  field

hmset   key  field1  value1  field2  value2  ...

hmget   key  field1  field2  ...

hgetall  key  

hexists  key  field

hdel  key  field1  field2  ...

 

hkeys  key #获取所有属性

hvals  key  #获取所有值

hlen  key  #获取属性数量

 

6、list

lpush  key  value1  value2  ...

rpush  key  value1  value2  ...

lpop  key  #会删除元素

lpop  key

lpush结合lpop(或rpush结合rpop)可以做栈

lllen  key  #list长度,时间复杂度为O(1) ,因为读取的是现成的值,不像mysql select count(*)会全表扫描

lrange  key  start  end  #不会删除元素,包含两端元素,支持负索引

ltrim  key  start  end  #和lrange类型,但会删除元素

lrem  key  count  value  #删除前count个值为value的元素,count>0从左删除,count<0从右删除,count=0删除所有

 

lindex  key  index  #获取指定索引的元素

lset  key  index  value  #在指定索引处插入元素

linsert  key  before|after  pivot  value  #将value插入到pivot的前面或后面

rpoplpush  src  dst  #移除src队列最右边的元素,插入到dst队列的最左边,src和dst可以相同

 

7、set

sadd  key  value1  value2  ...  #添加元素

srem  key  value1  value2  ...  #删除元素

SMEMBERS  key  #获取所有元素

SISMEMBER  key  value  #判断元素是否存在

集合间运算

scard  key  #获取元素个数

spop  key  #随机删除一个元素

SRANDMEMBER   key  count  #随机获取count个元素,如果不传count则随机获取一个元素

 

8、zset

  • list是用链表实现的,数据访问越靠两端的元素越快,适合实现新鲜事、日志这类很少访问中间元素的应用
  • 而zet是通过skiplist实现的,即使读取中间部分的元素也很快

zadd  key  score1  value1  score2  value2  ...  #添加元素,如果元素已存在则覆盖之前的分数

zscore  key  value1  #获取元素的分数

zrange  key  start  end  withscores  #先从小到大排序,再返回start到end之间的元素,传入withscores会返回分数

zrevrange  key  start  end  withscores  #从大到小排序

ZINCRBY  key  score  value  #给元素加分

zrangebyscore  key  min  max withscores  limit  offset  count  #获取指定分数范围内的元素,min和max默认包含,(80表示不包含,-inf、+inf分别表示负无穷、正无穷

zrevrangebyscore  #从大到小排序,注意min和max也是反的

zcard  key  #获取元素数量

zcount  key  min  max  #获取指定分数范围内的元素个数

zrank  key  value  #获取元素排名

zrevrank  key  value  #从大到小排序,获取元素排名

 

 

标签:127.0,6379,0.1,元素,redis,value,命令,key,大全
来源: https://blog.51cto.com/u_14643435/2845753

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有