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: 列表压缩策略,少用; 

猜你喜欢

转载自www.cnblogs.com/luohoufa/p/9763971.html