redis基础操作

redis基础数据类型有:string,hash,list,set,zset(有序集合);现总结以上数据类型的基础操作,redis命令不区分大小写:

1、string(字符串):

set key value:设置key值

get key:获取key值

getrange key start end:获取key中的子字符串

getset key value:设置新值并返回旧值

getbit key offset:对key的值,获取指定偏移量上的位

mget key1 [key2...]:获取多个key的值

setbit key offset value:对key的值,设置或清楚指定偏移量上的位

setex key seconds value:将value赋值给key,并且过期时间为seconds(单位:秒)

setnx key value:如果key不存在,则设置key值为value,如果key存在,则不做操作

setrange key offset value:用value覆盖位置offset及其后的值,超过value长度以后的值保持不变

strlen key:获取长度

mset key value [key1 value1...]:同时设置多个k-v

msetnx key value [key1 value1...]:相当于一次执行多个setnx key value;keyn存在的话则不操作,keyn不存在则设置valuen值

psetex key milliseconds value:同 setex,单位为毫秒

incr key:如果key存储的是整型数字,则将其加1,反之抛错

incrby key increment:如果key存储的是整型数字,则将其加increment,反之抛错

decr key:同 incr key相反

decrby key decrement:同incrby key increment相反

append key value:将key值后面追加value值,如果key不存在,则创建

2、hash(哈希):

hdel table field1 fields....:删除多个哈希表字段

hexists table field:判断表中是否有字段field

hget table field:获取表单field字段的值

hgetall table:获取哈希表中所有的字段和值

hincrby table field increment:如果表中的field存储的是整数值,则将其增大increment

hincrbyfloat table field increment:如果表中的field存储的是浮点值,则将其增大increment

hkeys table:获取哈希表中的字段

hlen table:获取哈希表大小

hmget table field1 field2....:获取表单中field1 field2...字段的值

hmset table field1 value1 field2 value2....:为哈希表设置多个键值

hset table field value:将表单的field字段设置为value

hsetnx table field value:如果表单不存在field字段,则生成field字段,并将其设置为value;反之不做操作

hvals table:获取表中的所有值

hscan key cursor [match pattern] 

3、list(列表):

blpop key1 [key2 ..] timeout:阻塞类型的弹出命令,在timeout时间范围内,依次查看待操作的列表,找到第一个不为空的列表返回其第一个键值,返回的值第一个是键,第二个是值

brpop key1 [key2..] timeout:阻塞类型的弹出命令,在timeout时间范围内,依次查看待操作的列表,找到第一个不为空的列表返回其最后一个键值,返回的值第一个是键,第二个是值

127.0.0.1:6379> lpush hello hello1 hello2 hello3
(integer) 3
127.0.0.1:6379> lpush world world1 world2 world3
(integer) 3
127.0.0.1:6379> lrange hello 0 10
1) "hello3"
2) "hello2"
3) "hello1"
127.0.0.1:6379> brpop hello 0
1) "hello"
2) "hello1"
127.0.0.1:6379> brpop hello world 0
1) "hello"
2) "hello2"

brpoplpush source destination timeout:阻塞类型的操作,在timeout时间范围内,从source列表中弹出一个值,并将其插入到destination列表中,然后返回该值

lindex key index:返回列表中位置为index的值,下表从0开始计数

linsert key before|after value newValue:在key列表中,将newValue放到value值的前面或则后面

llen key:返回列表长度

lpop:删除并返回列表的第一个元素

lpush key value1 value2...:将一个或多个值查到列表头部

lpushx key value:如果key存在,则将value插到列表头部,反之不进行操作;4.0.0以后的版本可以有多个value值

lrange key from to:获取from到to范围内的数据

lrem key count value:删除值为value的元素,count的取值有:

  • count > 0: Remove elements equal to element moving from head to tail.
  • count < 0: Remove elements equal to element moving from tail to head.
  • count = 0: Remove all elements equal to element.

lset key index value:通过索引设置列表的值

ltrim key start to:只保留start到to区间内的元素

rpop key:移除并返回列表中的最后一个元素

rpoplpush source destination:移除并返回source列表中的最后一个元素,并将该值添加到destination列表中

rpush key value1 value2...:在列表中添加一个或则多个值

rpushx key value:key存在则进行rpush操作,反之不操作

4、set(集合):符合数学定义,集合中没有重复的元素

sadd key v1 v2 v3:向集合key中添加元素

scard key:返回元素个数

sdiff key1 [key2,key3...]:返回集合key1与其他集合不同的元素结果

sdiffstore destination key1 [key2,key3..]:返回集合key1与其他集合不同的元素结果,并将其存放到destination中

sinter key1 [key2,key3...]:返回所有集合的交集

sinterstore destination key1 [key2,key3...]:返回所有集合的交集,并将其存放到destination中

sismember key member:判断member是否是key的元素

smembers key:返回集合中的所有元素

smove source destination member:将member从source移动到destina

spop key:删除并返回一个随机元素

srandmember key [count]:返回集合中一个或则多个随机元素

srem key val1 [val2..]:删除集合中一个或则多个元素

sunion key1 [key2...]:将集合key1 key2...合并起来并返回合并结果

sunionstore destination key1 [key2..]:将集合key1 key2...合并起来并将结果存储到destination集合中

sscan key cursor [MATCH pattern] [COUNT n]:迭代集合中的元素,找到并返回n个满足pattern模式的元素,这篇文章介绍的挺好:https://www.jianshu.com/p/c78639d3f0ce

5、zset(有序集合):

zadd key score1 member1 [score2 member2...]:添加或更新元素,score是一个数字,score越小,元素越靠前

zcard  key:获取集合的所有元素

zcount key min max:计算score在区间[min,max]之间的元素个数

zincrby key increment member:将元素member的分数加increment

zinterstore distination numkeys key1 [key2....]:计算多个集合的交集,并将结果存放到destination中

zlexcount key min max:计算集合中指定区间[min,max]中的元素个数

zrange key start stop [withscores]:返回集合中指定索引区间内的元素

zrangebyscore key min max [withscores] [limit]:返回集合中指定分数区间内的元素

zrevrank key member:返回有序集合中指定元素的排名

....

以上是五种基本数据类型的基本操作,下面的操作是这些键的基本操作:

del key:删除变量key

dump key: 序列化key,并返回序列化后的结果

exists key:检查key是否存在

expire key seconds:seconds秒后key失效

keys pattern:查找所有符合给定模式的key

move key db:将当前库的key移动到给定的数据库db中

persist key:移除key的过期时间,key将持久保持

pttl key:以毫秒为单位返回key的剩余过期时间

ttl key: 以秒为单位返回key的剩余过期时间

type key:返回类型

renmae key newkey:对key进行重命名

renameex key newkey: 如果key存在,则对其进行重命名

randomkey:从当前数据库中返回一个随机的key

以上是redis常用的基本操作,努力,加油。。。。。

原文地址:https://www.cnblogs.com/codeMedita/p/15780069.html