Redis学习02-数据类型
一、字符串类型
设置键值、获取键对应的值,不存在时返回nil
set如果某个键已存在,会覆盖该键以前对应的值
set name luohf
get name
set "first name" "luo hou fa"
get "first name"
获取键对应字符串的长度,不存在时返回0
strlen name
strlen "first name"
向一个键的字符串末尾追加字符串
append name " hi"
覆盖字符串值的一部分
setrange "name" 5 " hello"
键不存在时set,存在则返回0,不覆盖原来的值
setnx name keng
一次设置多个键的值(所有操作是原子性的)
mset name luohf age 18
一次获取多个键
mget name age
查看与键关联的值的内部编码方式
object encoding name
字符串值的编码方式:
int: 能使用64位有符号整数表示的字符串
embstr:长度小于等于44字节的字符串
raw:长度大于44字节的字符串
二、列表类型
在列表左端插入元素
lpush list01 a b c
获取列表中所有元素
lrange list01 0 -1
在列表右端插入元素
rpush list01 1 2 3
lrange list01 0 -1
在某元素后插入新元素
linsert list01 b after x
获取列表中位于索引位置处的元素(索引从0开始编号)
lindex list01 3
存在时才将元素插入到列表中
lpushx, rpushx
从左端右端移除第一个元素
lpop list01
rpop list01
删除列表中多个元素,只保留由start和end索引所指定范围内的元素
ltrim list01 1 -1
设置指定索引位置处元素的值
lset list01 1 hello
blpop和brpop
阻塞版命令,也是从左端和右端弹出元素,但当列表为空时,会将客户端阻塞,需指定一个以秒为单位的超时时间,为0表示永久等待;
例:
worker-1> brpop job_queue 0
worker-2>brpop job_queue 0
worker-3> lpush job_queue job1
worker-3> lpush job_queue job2 job3
worker-3> lrange job_queue 0 -1
配置参数:
list-max-ziplist-size: 一个列表条目中一个内部节点的最大大小,大部分情况取默认值即可;
list-compress-depth: 列表压缩策略,少用;
三、哈希类型(hash)
hmset设置元素的属性信息
hmset student name zs age 10
获取多个字段对应的值
hmget student name age
hget student name
判断一个哈希中是否存在某个字段
hexists student name
hexists student address
获取一个哈希中所有字段和值(不建议使用)
hgetall student
设置单个字段的值
hset student address hn
删除字段
hdel student address
不存在时才设置
hsetnx
增量迭代遍历元素
hscan student 0 match *
从0开始迭代遍历所有元素
四、集合类型(set)
唯一、无序对象组成的集合; 方便集合运算
sadd myset1 a b c
sadd myset2 a c 1 2
测试一个元素是否在集合中
sismember myset1 c
sismember myset1 k
删除元素
srem myset1 c
获取集合中元素的数量
scard myset1
scard myset2
获取集合所有元素(不推荐使用)
smembers myset1
使用sscan命令迭代
计算并集
sunion, sunionstore
计算交集
sinter, sinterstore
计算差集
sdiff, sdiffstore
例:
sadd set01 a b c d
sadd set02 a c 1 2
sinter set01 set02
sinterstore set03 set01 set02
五、有序集合类型(sorted set)
zadd sortset01 100 zs 80 ls 70 ww
zrevrange sortset01 0 -1 withscores
加
zincrby sortset01 5 ls
查看排名(从0开始)
zrevrank sortset01 zs
zscore sortset01 zs
合并排名
zadd sortset02 72 zs 92 ls 88 ww
zunionstore sortset03 2 sortset01 sortset02 weights 1 1
六、HyperLogLog类型(HLL)
统计用户访问数据
添加用户id到HLL中
pfadd userIdset 1001
pfadd userIdset 20001
统计访问数量
pfcount userIdset
七、Geo类型
Geo地理位置,略
八、键管理
获取键的个数
dbsize
获取所有的键
keys *
scan 0
scan 9
删除键
del age
unlink name(用于大key的异步删除)
exists name
type name
rename name newname
其他
dump/destore用于序列化和反序列化

浙公网安备 33010602011771号