Redis数据库相关指令

1、Redis特点:

  • Redis是一个高性能key/value内存型数据库 在redis中,所有的数据形式都是以键值对的方式来存储的

  • Redis支持丰富的数据类型 string,list,set,sorted set 指的是键值对中的值的类型

  • Redis支持持久化 持久化:将数据落盘,明天会详细说一说redis中的持久化

  • Redis单线程,单进程 由于是单线程和单进程的,所以它的线程是安全的,我们之前说的java中的多线程安全在分布式中不起作用,当时只针对一个JVM中是有效的。

2、相关指令

redis默认存在16个库,编号0-15,select 库编号(切换到某个库)

flashall 清空所有库

flashDB 清空当前库

del:删除key

exists:检查给定的key是否存在(exists name)

expire:为给定key设置生存时间,时间到后指定key会被删除,以秒为单位(expire name 10)

keys:

    KEYS * 匹配数据库中所有key 。
    KEYS h?llo 匹配hello ,hallo 和hxllo 等。
    KEYS h*llo 匹配hllo 和heeeeello 等。
    KEYS h[ae]llo 匹配hello 和hallo ,但不匹配hillo 。特殊符号用 "\" 隔开

move:将指定key移动到指定库(move name 1)

pexpire:为给定key设置生存时间,时间到后指定key会被删除,以毫秒为单位(expire name 10000)

pexpireat:同上,时间为时间戳,到达指定时间给定的key会被删除

ttl:查看给定key的生存时间,若key不存在返回-2,若存在而没有设置生存时间返回-1;否则返回生存时间,以秒为单位 (ttl name)

pttl:同上,返回时间以毫秒为单位

randomkey:从当前数据库随机返回一个key(randomkey)

rename:给指定的key更改名字,若更改的名字已存在则会覆盖之前的数据(rename name name2)

type:产看key对应值的类型(key name)

 返回值:none (key 不存在)
               string (字符串)
               list (列表)
               set (集合)
               zset (有序集)
               hash (哈希表)

2.1、String类型

set:设置一个key/value(set name xiaohei)

get:获得key所对应value的值(get name)

mset:一次设置多个key value,之间用空格分隔(mset age 18 adress hefei)

mget:一次获取多个key对应的value(mget name age adress)

getset:获取key对应的value,并为key设置新的value(setget name xiaobai):会返回name对应的value,并将value设置为xiaobai

strlen:获得key对应value的长度(strlen name)

append:为key所对应value追加内容,并返回追加后value的长度(append name xiaobai)

getrange:获取key对应value内容,索引从0开始,获取到最后一位 -1 (getrange name 0 -1)

setex:为指定key设置生存时间,以秒为单位,需加上value(setex name 10 xiaobai)

psetex:同上,以毫秒为单位

setnx:若key不存在则添加,存在则不操作(setnx name xiaobai)

msetnx:同上,一次添加多个key value,若有一个存在则都不添加

decr:key对应的value -1 (decr age)

decrby:减去指定的值(decrby age 5)

incr:key对应的value +1 (incr age)

incrby:加上给定的值(incrby age 5)

incrbyfloat:加上给定的小数 (incrbyfloat age 1.23)

2.2、list类型

key为字符串,value为list元素有序,可以重复

lpush:从左边加入数据,用空格分隔(lpush list 1 2 3 4 5)

则list对应的value为:5 4 3 2 1

lpushx:需确保key存在,从左边插入(lpush list 1 2)

rpush:从右边插入数据

rpushx:同上

lpop:从左边移除第一个数据

rpop:从右边移除第一个数据

lrange:获取key对应的value(lrange list 0 -1)

llen:获取列表元素个数(llen list)

lset:设置指定索引的值(lset list 0 a):将list对应的value中第一个元素设为a

lindex:获取指定索引对应的元素(lindex list 0)

lrem:删除重复元素(lrem 2 a):删除两个a

ltrim:保留特定区间的元素,索引(ltrim list 0 3)

linsert:在指定元素前添加元素(linsert list before a b)

2.3、set类型

元素无序,不可以重复

sadd:添加元素(sadd set 1 2 3 4)

smembers:显示所有元素(smembers set)

scard:返回集合元素个数(scard set)

spop:随机返回一个元素,并将其删除

smove:从一个集合向另一个集合移动元素,必须是同一种类型(smove set set2 a)

srem:从集合删除元素(srem set a)

sismember:判断集合是否有这个元素(sismember set a)

srandmember:随即返回元素,可添加个数,返回多少个

sdiff:去掉第一个集合中其它集合含有的相同元素

sinter:求交集

sunion:求和集

2.4ZSet类型

可排序的set集合 排序 不可重复

命令说明
zadd添加一个有序集合元素 zadd zset 2 xiaohu 3 xiaohu2
zcard返回集合的元素个数
zrange 升序 zrevrange 降序返回一个范围内的元素 如果想看看分数 withscores
zrangebyscore按照分数查找一个范围内的元素 zrangebyscore zset 0 20 withscores limit 0 2
zrank返回排名
zrevrank倒序排名
zscore显示某一个元素的分数
zrem移除某一个元素
zincrby给某个特定元素加分

2.5、hash类型

特点: value 是一个map结构 存在key value key 无序的

redis key(String) value(map)

Map<String,Map<String,value>> map

举例:map name zhangsan

命令说明
hset设置一个key/value对
hget获得一个key对应的value
hgetall获得所有的key/value对
hdel删除某一个key/value对
hexists判断一个key是否存在
hkeys获得所有的key
hvals获得所有的value
hmset设置多个key/value
hmget获得多个key的value
hsetnx设置一个不存在的key的值
hincrby为value进行加法运算
hincrbyfloat为value加入浮点值

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值