Readis基本操作

一.redis基本操作

常用关键字 关键字的解释 关键字示例

del

作用:删除指定key的value

参数列表:

  key 指定的key

del key1
expire  

作用:设置key的存在时间

参数列表:

  key 指定的key

  second 过期时间

expire key1 5

(以秒为单位)

keys

作用:返回指定模式的的key

参数列表:

  pattern 匹配的字符串

keys *

(这里是返回当前数据库的全部key,还有?,要查找的是符号需要加 "/" 转义)

migrate

作用:移动指定key到指定的redis的数据库里

参数列表:

  host 目标主机的IP

  port 目标redis所在端口号

  key 想要移动的key

  destination-db 目标数据库的库号

  timeout 超时时间 超过这个时间还没移动完就报错

migrate localhost 6380 key1 0 5000

(要在两个不同的redis间移动才可以,同一个redis移动会报错)

move

作用:移动指定key到指定数据库里,不过是在同一个redis

参数列表:

  key 需要移动的key

  db 目标数据库的库号

move key1 2

(redis默认有16个数据库,默认是用0,可以通过redis.conf来修改数据库个数)

persist

作用:持久化指定的key

参数列表:

  key 需要持久化的kye

persist key1
rename

作用:重命名指定的key

参数列表:

  key 需要重命名的key

  newkey 新的名字

rename key1 key2
select

作用:切换数据库

参数列表:  

  index 要切换的数据库的库号 

select 1
 ttl

作用:显示key的剩余时间

set key1 long ex 5 

ttl key1

ex

作用:设置key的存在时间

set key1 ex 10
setnx

作用:只有没有指定key的时候才插入成功

setnx key1 long
mset

作用:同时插入多个键值对

mset name long age 20
incr

作用:对value加一

set key1 1

incr key1

decr

作用:对value减一

set key1 1

decr key1

exists

作用:判断key是否存在

exists key1

(存在返回1,不存在返回0)

 ...    

 

二.List基本操作

Lpush 从列表左边插入值

Rpush 从列表右边插入值

Lrange 获取一个列表的值,需要指定开始结束下标(-1表示最后一个)

Lpop 返回并移除表头的值

Rpop 返回并移除表尾的值

Lrem(LIst remove)移除与给定的值相同的元素并设置要移除的数量

Lset通过指定下标名来设置值

Lindex通过下标返回值(这里取值的下标需要注意它是与你存入的下标是相反的,如果你存入的是在第一位,那么去就需要从最后取)

Linsert插入值到指定下标处

Llen返回指定列表长度

还有几个R开头的命令,这里介绍一个Rpush作用是插入数据到表尾

三.set的基本操作

Sadd 增加元素

Scard返回元素数量

Sismember 判断这个值是否已经存在这个列表里

Smembers 返回这个列表里全部的值

Smove原子的从一个集合移动到另一个集合里

Srem移除集合中的一个或多个元素

Sunion返回多个集合的并集

四. Zset(有序的Set)

  zadd 传入一个member的集合,每个value的前面都有一个score,zset就是以此为依据来排序

zrange 通过key获取zset的全部member,加上WITHSCORES就会把分数值一同显示

zrem 姗迟指定key的zset中指定的member

zcard 返回指定key的zset的总数

zincrby 对指定的member的score加上指定的分数

zcount 返回在一个分值区间中的member的数量

zrank 返回指定member的排名(从零开始排)

zscore 返回指定member的的分数

zrevrange 使用方法与range一样只是以倒序排列

。。。

五.hash

  hash是redis可以存多个键值对的数据结构,在解决session跨域问题的时候,可以通过这个来模拟session的数据结构

命令 具体解释 示例
hset

作用:新建一个hash,如果指定的hash已经存在则是增加,不会再新建

参数列表:

  key 不用说了

  field 你的键值对的键

  value 你的键值对的值

hset key1 name longxianfeng

hset key1 age 20

(一次只能存入一个键值对,多个键值对要分多次存)

hlen

作用:查看hash集的长度

hlen key1
hvals 作用:查看指定hash的全部的value hvals key1
hget

作用:查看指定hash的指定fieldd的值

参数列表:

  key ...

  field 你要查询的键值对的键

hget key1 name
hgetall 作用:查看指定hash的全部键值对 hgetall key1
hdel 作用:删除指定kye与field的value hdel key1 name

六.redis的持久化

Bgsave(backgruand save)用于后台异步保存数据到磁盘,这个命令会后台自动执行,

save 持久化数据会阻塞主线程(不推荐)

config set dir /user设置rdb文件保存路径(重启失效,推荐在xml里设置),默认在bin目录下

redis的持久化文件类型有rdb与aof两种,rdb是二进制的,aof是字符类型的,aof与rdb同时存在就优先使用aof

rdb持久化的优缺点:

  优点:

      1,压缩后的二进制文,适用于备份、全量复制,用于灾难恢复
      2,加载RDB恢复数据远快于AOF方式
    缺点:

      1,无法做到实时持久化,每次都要创建子进程,频繁操作成本过高
      2,保存后的二进制文件,存在老版本不兼容新版本rdb文件的问题

aof持久化的流程:

    1,所有的写入命令(set hset)会append追加到aof_buf缓冲区中
    2,AOF缓冲区向硬盘做sync同步
    3,随着AOF文件越来越大,需定期对AOF文件rewrite重写,达到压缩
    4,当redis服务重启,可load加载AOF文件进行恢复

 

关于aof持久化的相关配置的解释:

    appendonly yes //启用aof持久化方式
    appendfsync always //每收到写命令就立即强制写入磁盘,最慢的,但是保证完全的持久化,不推荐使用
    appendfsync everysec //每秒强制写入磁盘一次,性能和持久化方面做了折中,推荐
    no-appendfsync-on-rewrite yes //正在导出rdb快照的过程中,要不要停止同步aof
    auto-aof-rewrite-percentage 100 //aof文件大小比起上次重写时的大小,增长率100%时,重写
    auto-aof-rewrite-min-size 64mb //aof文件,至少超过64M时,重写

 

七.其他命令

Config get返回运行中readis的指定项目的配置信息 支持 *

select 切换数据库

dbsize返回当前数据库中key的数量

info以一种易读的文本格式返回数据库的各种信息

最后欢迎加入我自建的学习资料分享群,群里有各种免费的资料,java,大数据,汇编,分布式,数据库,框架等,网路安全等等,进群即可在文件中免费下载

没有任何套路 ,群号:830101760

posted @ 2019-04-12 10:07  lollong  阅读(4347)  评论(0)    收藏  举报