redis存储方式 Key VALUE (非关系数据库)
String 类型:
基本命令:
创建数据:
redis-cli -n 1//选择数据库(1号,一共16个),数据库从0开始,默认为0号数据库[1-15]
set k1 abc//存储一个键为k1 值为abc的数据
get k1 //获取键为k1的数据
set k2 123 nx//not exist没有键时才允许创建(只进行创建)
set k1 ABC xx//有键时才允许进修改(只进行修改)
type k1//告之类型
OBJECT encoding k1//shell>"raw",字符串原始类型(标记)目的是决定能否进行运算
OBJECT encoding k2//shell>"int",整型原始类型(标记)目的是决定能否进行运算
MSET k3 5 k4 8 k5 hello //设置多个键的字符串值
MSET S1 89 S2 09 S3 HELLO //没有当前keys的时候才进行创建
STRLEN K1//k1的长度是多大
FLUSHALL//冲刷(清除全部数据)
FLUSHDB//清除当前数据库
查找键:
keys ? //?相当于占位符(任意一个字符)
keys * //显示所有的键值(任意穿度字符)
keys s*
keys s?
keys s[13]
keys *
keys ??
pattern取值:
* 任意长度字符
? 任意一个字符
[] 字符集合,表示可以是集合中的任意一个
键是否存在:
EXISTS key
键重命名:
RENAME key newkey
RENAMENX key newkey
键删除:
DEL key [key ...]
获取值:
GET key
获取多个给定的键的值:
MGET key [key ...]
返回旧值并设置新值:
GETSET key value//如果键不存在,就创建并赋值
字符串长度:
STRLEN key
object encoding key//获取value底层存储的数据结构类型
键类型:
TYPE key
追加字符串:
APPEND key value//如果键存在就追加;如果不存在就等同于SET key value
获取子字符串 索引:
GETRANGE key start end
0 3 0 -1(获取所有的内容)
索引值从0开始,负数表示从字符串右边向左数起,
-1表示最右一个字符,负号减轻复杂度
例: GETRANGE k1 3 -1//k1 的value为 "111wdwdw" 输出结果为"wdwdw"
覆盖字符串:
SETRANGE key offset value
步长1的增减:
INCR key
DECR key //字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串
步长增减 float:
INCRBY key decrement
DECRBY key decrement //字符串值会被解释成64位有符号的十进制整数来操作,结果依然转成字符串
Redis的位图bitmap(字节数组):
位图不是真正的数据类型,它是定义在字符串中,一个字符串类型的值最多能存放512M字节的内容
设置某一位上的值:
SETBIT key offset value (0/1)
offset位偏移量,从0开始
获取某一位上的值:
GETBIT key offset
返回指定值0或者1在指定区间上第一次出现的位置偏移量
BITPOS key bit [start] [end](字节索引)
bitpos k1 1 1 1
k2: 0 1 0 0 0 0 1 0 0 1 0 0 0 0 0 0
k3: 0 1 0 0 0 0 1 0
0 1 0 1 0 0 0 1 0 1 0 0 0 0 1 0
setbit k1 1 1
Redis的list列表:
列表的索引:从左至右,从0开始
从右至左,从-1开始
命令说明:
B block 块,阻塞
L left 左
R right 右
X exist 存在
左右或者头尾压入元素 string set key “abc”
LPUSH key value [value ...]
LPUSHX key value
RPUSH key value [value ...]
RPUSHX key value
左右或者头尾弹出元素:
LPOP key
RPOP key
从一个列表尾部弹出元素压入到另一个列表的头部 string getset
RPOPLPUSH source destination
返回列表中指定范围元素
LRANGE key start stop
LRANGE key 0 -1 表示返回所有元素
获取指定位置的元素:
LINDEX key index
设置指定位置元素的值
LSET key index value
列表长度,元素个数 string strlen
LLEN key LRANGE KEY 0 -1
从列表头部开始删除值等于value的元素count次,LIST 可以重复出现:
LREM key count value
count > 0 : 从表头开始向表尾搜索,移除与 value 相等的元素,数量为 count
count < 0 : 从表尾开始向表头搜索,移除与 value 相等的元素,数量为 count 的绝对值
count = 0 : 移除表中所有与 value 相等的值
举例:
RPUSH listkey c abc c ab 123 ab bj ab redis list
LREM listkey 2 ab
LRANGE listkey 0 -1
去除指定范围外元素:
LTRIM key start stop
举例:
RPUSH listkey c abc c ab 123 ab bj ab redis list
LTRIM listkey 0 -1
LTRIM listkey 1 -1
LTRIM listkey 1 10000
微博的评论最后500条
LTRIM u1234:forumid:comments 0 499