Redis数据类型

91 阅读3分钟

Redis数据类型

Redis-Key

客户端连接# redis-cli -p 6379
Reids Ping# ping PS:返回PONG说明连接正常
判断某个key是否存在# EXISTS key PS:返回1表示存在,0不存在
设置过期时间,单位是秒# EXPIRE key time example:EXPIRE name 10
查看key的剩余时间# ttl key example: ttl name
查看key的类型# type key example: type name 切换数据库# select 3
数据库大小# DBSIZE
获取数据库名称# get name
查看数据库所有的key# keys *
清空当前数据库# flushdb
清空全部数据库# FLUSHALL

String(字符串)

设置值# set key value 获取# get key
查看所有的key# key *
判断某个key是否存在# EXISTS key
追加字符串# APPEND key value (当前key不存在,相当于set key)
获取字符串长度# STRLEN key
i++ 自增1# incr key
i-- 自减1# decr key
指定增量# INCRBY key 10 指定减少# DECRBY key 10
截取字符串# GETRANGE key start end

  • 可以用负的位移来表示从string尾部开始数的下标。所以-1就是最后一个字符,-2就是倒数第二个。
  • 0表示string的第一个字符
  • GETRANGE key 0 -1 查询全部字符串,和 get key一样的效果

替换指定位置开始的字符串# SETRANGE key start end
设置过期时间# setex key seconds value (set with expire)
key不存在则创建,存在则创建失败# setnx key value (set if not exist) 常用于分布式锁中
mset key value [key value ...] 同时设置多个
mget key [key ...] 同时获取多个
msetnx key value [key value ...] msetnx 是一个原子性的操作,一起成功/失败

#对象
set object:id:field value 比如:设置user,{name:张三,age:2} mset user:1:name 张三 user:1:age 2
mget user:1:name user:1:age

GETSET key value #不存在值,返回nil。如果存在值,获取原来的值,并设置新的值 GETSET可以和INCR一起使用实现支持重置的计数功能。举个例子:每当有事件发生的时候,一段程序都会调用INCR给key mycounter加1,但是有时我们需要获取计数器的值,并且自动将其重置为0。这可以通过GETSET mycounter “0”来实现

List(列表)

所有的List命令,是以l开头
--- 可以考虑画图说明 redis不区分大小写命令

LPUSH key value
Lrange start
#移除
Lpop list #移除列表的第一个元素  
Rpop list #移除列表的第一个元素
Lrem key num value # 移除list集合中指定个数的value,精确匹配
#下标
Lindex key index #通过下表获取列表中的值
# list长度
Llen key  #返回列表的长度

LPUSH key value (从左边开始放)
LRANGE start end (先进后出)
Rpush key value (从右边开始放

#截取
Ltrim key start end  #通过下标截取指定的长度,这个list已经被改变
#移除获取
RpopLpush source destination #移除列表的第一个元素到另外一个列表
#更新列表某个下标的值
Exist key  #判断列表是否存在
Lset key index value  #将列表中指定下标的值更新。下标不存在则报错
#插入
Linsert key  before|after pivot value
ex: 在mylist的World之前插入There
Linsert mylist before "World" "There"

队列:Lpush Ppop (先进先出) 栈:Lpush Lpop(先进后出)

Set

Hash

Zset