Redis入门(一)(二)

Redis支持的键值数据类型:

  • 字符串类型
  • 列表类型
  • 有序集合类型
  • 散列类型
  • 集合类型

Redis的应用场景

  • 缓存
  • 网站访问统计
  • 任务队列
  • 数据过期处理
  • 应用排行榜
  • 分布式集群架构中的session分离

Redis的数据数据结构

1.五种数据类型
- 字符串(String) 常用
- 字符串列表(list)
- 有序字符串集合(sorted set)
- 哈希(hash) 常用
- 字符串集合(set)

2.key定义的注意点:
- 不要过长
- 不要过短
- 统一的命名规范

  1. 存储字符串(String)

    • 二进制安全的,存入和获取的数据相同
    • Value最多可以容纳的数据长度是512M
    • 存储String(字符串)常用命令:

    • 赋值 set、setget、

    • 删除 del
    • 扩展命令
    • 取值 get、
    • 数值增减 incr、decr、incrby、decrby、append

具体命令(自行测试)

  1. 存储Hash

    • String Key和String Value的map容器
    • 存储Hash常用命令:

    • 赋值 hset、hmset、

    • 删除 del、hdel
    • 自学命令 hexists、hlen、hkeys、hvals、
    • 取值 hget、hmget、hgetall
    • 增加数字 hincrby、

具体命令(自行测试)

5.存储list
- ArrayList使用数组方式
- LinkedList使用双向链接方式
- 双向链表中增加数据
- 双向链表中删除数据
- 存储list常用命令:

- 两端添加 lpush、rpush
- 两端弹出 lpop、rpop

- 查看列表 lrange
- 获取列表元素个数 llen、
- 删除列表元素 lrem、
- 扩展命令 lpushx(从左插入头)、rpushx(右插入尾)、lset(指定位置插入)、linsert(在某个元素前后插入)、rpoplpush

rpoplpush用法(从别的列表右边弹出一个元素从左边插入到另一个列表)

127.0.0.1:6379> lpush mylist5 1 2 3
(integer) 3
127.0.0.1:6379> lpush mylist6 a b c
(integer) 3
127.0.0.1:6379> lrange mylist5 0 -1
1) "3"
2) "2"
3) "1"
127.0.0.1:6379> lrange mylist6 0 -1
1) "c"
2) "b"
3) "a"
127.0.0.1:6379> rpoplpush mylist5 mylist6
"1"
127.0.0.1:6379> lrange mylist6 0 -1
1) "1"
2) "c"
3) "b"
4) "a"
127.0.0.1:6379> lrange mylist5 0 -1
1) "3"
2) "2"

6.存储Set
- 和List类型不同的是,Set集合中不允许出现重复的元素
- Set可包含的最大元素数量是4294967295
- 存储set常用命令

- 添加/删除元素 sadd、srem
- 集合中的差集运算 sdiff、
- 集合中的并集运算 sunion、
- 获得集合中的元素 smembers、
- 集合中的交集运算 sinter、
- 扩展命令 sismember、sdiffstore、sinterstore、sunionstore、sscrd(个数)、srandmember、

常用命令演示:

127.0.0.1:6379> sadd myset a b c
(integer) 3
127.0.0.1:6379> sadd myset a
(integer) 0
127.0.0.1:6379> sadd myset 1 2 3
(integer) 3
127.0.0.1:6379> srem myset 1 2
(integer) 2
127.0.0.1:6379> smembers myset
1) "c"
2) "a"
3) "b"
4) "3"
127.0.0.1:6379> sismember myset a
(integer) 1
127.0.0.1:6379> sismember myset 0
(integer) 0
127.0.0.1:6379> sadd mya1 a b c
(integer) 3
127.0.0.1:6379> sadd myb1 a c 1 2
(integer) 4
127.0.0.1:6379> sdiff mya1 myb1
1) "b"
127.0.0.1:6379> sadd mya2 a b c
(integer) 3
127.0.0.1:6379> sadd myb2 a c 1 2
(integer) 4
127.0.0.1:6379> sinter mya2 myb2
1) "a"
2) "c"
127.0.0.1:6379> sadd mya3 a b c
(integer) 3
127.0.0.1:6379> sadd myb3 a c 1 2
(integer) 4
127.0.0.1:6379> sunion mya3 myb3
1) "2"
2) "c"
3) "1"
4) "b"
5) "a"
127.0.0.1:6379> smembers myset
1) "c"
2) "a"
3) "b"
4) "3"
127.0.0.1:6379> scard myset
(integer) 4
127.0.0.1:6379> srandmember myset
"c"
127.0.0.1:6379> srandmember myset
"b"
127.0.0.1:6379> sdiffstore my1 mya1 myb1
(integer) 1
127.0.0.1:6379> smembers my1
1) "b"
127.0.0.1:6379> sinterstore my2 mya2 myb2
(integer) 2
127.0.0.1:6379> smembers my2
1) "a"
2) "c"
127.0.0.1:6379> sunionstore my3 mya3 myb3
(integer) 4
127.0.0.1:6379> smembers my3
1) "c"
2) "1"
3) "a"
4) "2"

7.存储Sorted-Set
- Sorted-Set和Set的区别
- Sorted-Set中的成员在集合中的位置是有序的
- 常用命令

- 添加元素 zadd、
- 删除元素 zrem、
- 获得元素 zrange、zremrangebyscore、zremrangebyrank、
- 范围查询 zrangebyscore、zrangebyrank、
- 扩展命令 zcount、zincrby、

命令实例演示:

127.0.0.1:6379> zadd mysort 70 zs 80 ls 90 ww
(integer) 3
127.0.0.1:6379> zadd mysort 100 zs
(integer) 0
127.0.0.1:6379> zadd mysort 60 tom
(integer) 1
127.0.0.1:6379> zscore mysort zs
"100"
127.0.0.1:6379> zcard mysort
(integer) 4
127.0.0.1:6379> zrem mysort tom ww
(integer) 2
127.0.0.1:6379> zcard mysort
(integer) 2
127.0.0.1:6379> zadd mysort 85 jack 95 rose
(integer) 2
127.0.0.1:6379> zrange mysort 0 -1
1) "ls"
2) "jack"
3) "rose"
4) "zs"
127.0.0.1:6379> zrange mysort 0 -1 withscores
1) "ls"
2) "80"
3) "jack"
4) "85"
5) "rose"
6) "95"
7) "zs"
8) "100"
127.0.0.1:6379> zrevrange mysort 0 -1 withscores
1) "zs"
2) "100"
3) "rose"
4) "95"
5) "jack"
6) "85"
7) "ls"
8) "80"
127.0.0.1:6379> zremrangebyrank mysort 0 4
(integer) 4
127.0.0.1:6379> zadd mysort 80 zs 90 ls 100 ws
(integer) 3
127.0.0.1:6379> zremrangebyscore mysort 80 100
(integer) 3
127.0.0.1:6379> zrange mysort 0 -1
(empty list or set)
127.0.0.1:6379> zadd mysort 70 zs 80 ls 90 ww
(integer) 3
127.0.0.1:6379> zrangebyscore mysort 0 100
1) "zs"
2) "ls"
3) "ww"
127.0.0.1:6379> zrangebyscore mysort 0 100 withscores
1) "zs"
2) "70"
3) "ls"
4) "80"
5) "ww"
6) "90"
127.0.0.1:6379> zrangebyscore mysort 0 100 withscores limit 0 2
1) "zs"
2) "70"
3) "ls"
4) "80"
127.0.0.1:6379> zincrby mysort 3 ls
"83"
127.0.0.1:6379> zscore mysort ls
"83"
127.0.0.1:6379> zcount mysort 80 90
(integer) 2
  • Sorted-Set使用场景

    • 如大型在线游戏积分排行榜
    • 构建索引数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值