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用于序列化和反序列化

 

posted @ 2018-10-10 00:27  luohoufa  阅读(128)  评论(0)    收藏  举报