专业编程基础技术教程

网站首页 > 基础教程 正文

Jedis的最基本使用 redis的五种基本数据类型以及操作

ccvgpt 2024-10-12 13:48:07 基础教程 5 ℃

配置依赖

添加redis和junit的依赖.

Jedis的最基本使用 redis的五种基本数据类型以及操作

编写测试代码

通过连接池获取jedis连接

Redis的数据结构 五种数据类型

  1. 字符串(String)

  2. 字符串列表(list)

  3. 有序字符串集合(sorted set)

  4. 哈希(hash)

  5. 字符串集合(set)

Key定义的注意点

  1. 不要过长

  2. 不要过短

  3. 统一的命名规范

存储String

二进制安全的,存入和获取的数据相同

Value最多可以容纳的数据长度是512M

存储String常用命令

赋值

删除

取值

数值增减

扩展命令

存储String常用命令 赋值

set company name

getset company name2

先取值后修改

存储String常用命令 取值

get company

getset company name2

先取值后修改

存储String常用命令 删除

del person

存储String常用命令 数值增减

incr num

如果num不存在则先设置为0,再递增num的值

decr num

如果num不存在则先设置为0,再递减num的值

incrby num 4

如果num不存在则先设置为0,再递增num的值(+4)

decrby num 3

如果num不存在则先设置为0,再递减num的值(-3)

存储String常用命令 字符串拼接

append company 'ss'

如果company不存在,则设置为'',然后再拼接上'ss'

存储Hash

String Key和String Value的map容器

每一个Hash可以存储4294967295个键值对

存储Hash常用命令

赋值 取值 删除 增加数字 自学命令

存储Hash常用命令 赋值

hset myhash username jack

hmset myhash2 username rose age 21

一次性设置多个键值对

存储Hash常用命令 取值

hget myhash username

hmget myhash username age

一次性获取多个

hgetall myhash

获取全部

hkeys myhash

获取所有的键

hvals myhash

获取所有值

存储Hash常用命令 删除

hdel myhash2 username age

删除多个键值对

存储Hash常用命令 递增

hincrby myhash age 5

递增myhash中age

存储Hash常用命令 判断

hexists myhash username

判断是否存在username键值对

hlen myhash

键值对长度

存储list

如果list中没有元素,则该list会被删除

ArrayList使用数组方式

LinkedList使用双向链表方式

双向链表中增加数据

双向链表中删除数据

存储list常用命令

两端添加 查看列表 两端弹出 获取列表元素个数 扩展命令

存储list常用命令 两端添加

lpush mylist a b c

左端添加a b c,如果mylist不存在则先创建

rpush mylist 1 2 4

右端添加1 2 4,如果mylist不存在则先创建

lpushx mylist x

左端插入x,如果mylist存在的话

rpushx mylist y

右端插入y,如果mylist存在的话

存储list常用命令 两端弹出

lpop mylist

左端弹出

rpop mylist

右端弹出

存储list常用命令 查看列表元素

lrange mylist 0 -1

0 开始元素

-1 结束元素

如果有如下元素:

1 2 3 4 5 6

则相应的index为:

1 2 3 4 5 6

如果用负数表示,则

-6 -5 -4 -3 -2 -1

存储list常用命令 查看列表元素的个数

llen mylist

存储list常用命令 删除元素

lrem mylist3 2 3

2:表示删除多少个

3:表示删除什么元素

删除mylist3中2个3

lrem mylist3 -2 3

从尾开始删除2个3

lrem mylist3 0 2

如果是0则删除所有

删除mylist3中所有的2

存储list常用命令 修改某个元素

lset mylist 2 mmm

修改第二个元素为mmm

存储list常用命令 在某个元素之前或之后插入元素

linsert mylist4 before b 11

linsert mylist4 after b 22

存储list常用命令 某个列表的头部弹出的元素加到另一个list的尾部

rpoplpush mylist5 mylist6

使用场景

存储Set

和List类型不同的是,Set集合中不允许出现重复的元素

Set可包含的最大元素数量是4294967295

存储set常用命令 添加元素

sadd myset a b c

存储set常用命令 删除元素

srem myset 2 3

删除2,3

存储set常用命令 查看所有的元素

smembers myset

存储set常用命令 判断元素是否在set中

sismember myset a

存储set常用命令 差集 交集 并集

差集

sdiff mya1 myb1

交集

sinter mya1 myb1

并集

sunion mya1 myb1

存储set常用命令 获取集合的元素

scard myset

存储set常用命令 随机获取一个元素

srandmember myset

存储set常用命令 把两个set的差集存储到另一个集合中

sdiffstore my1 mya1 myb1

mya1和myb1的差集存储到my1中

同理:

sinterstore my2 mya1 myb1

sunionstore my2 mya1 myb1

存储set使用场景

存储Sorted-set

Sorted-set有一个分数与之关联,分数是可以重复

说是有序,还以为是按照插入的顺序排序,其实不是的,是按照分数排序.

Sorted-set中的成员在集合中的位置是有序的.

存储Sorted-set 常用命令 添加元素

zadd mysort 70 zs 80 ls 90 ww

存储Sorted-set 常用命令 获取某个key的分数

zscore mysort zs

存储Sorted-set 常用命令 获取set的个数

zcard mysort

某个分数范围内的元素个数

zcount mysort 80 90

存储Sorted-set 删除元素

zrem mysort tom ww

按照范围删除

zremrangebyrank mysort 0 4

因为是有顺序的,所以按照index删除

按照分数删除

zremrangebyscore mysort 80 100

存储Sorted-set 查看元素

zrange mysort 0 -1

包括分数

zrange mysort 0 -1 withscores

反序查看

zrevrange mysort 0 -1 withscores

按照分数查看

zrangebyscore mysort 0 100

zrangebyscore mysort 0 100 withscores

limit 开始的元素的index 多少个

zrangebyscore mysort 0 100 withscores limit 0 1

存储Sorted-set 给某个key的分数增加

zincrby mysort 3 ls

例子中是增加3

最近发表
标签列表