Redis基础知识

Redis基础知识

  • Redis基础数据结构
    • 字符串(string)
      • 键值对
      • 批量键值对
      • 计数
    • 列表(list)
      • 基础命令
    • 字典(hash)
      • 基础命令
    • 集合(set)
      • 基础命令
    • 有序集合(zset)
      • 基础命令
    • 设置过期时间
    • 通用key命令
    • 通用服务器命令

Redis基础数据结构

Redis 有 5 种基础数据结构,分别为 : string (字符串)、 list (列表) 、 hash (字典) 、set (集合)和 zset (有序集合)

字符串(string)

键值对

set key value 重复设置会替换value
setnx key value 如果key不存在,就执行set,key存在,则不执行
get key
exists key
del key

批量键值对

mset key1 value2 key2 value2
mget key1 key2

计数

set num 10
incr num  等于 incrby num 1  incr 如果设置的key不存在则创建key、并将key的值设置为0
incrby num 5
decr
decrby
tip:
用户签到,每天签到一次,多并发情况下存在set完之后有get旧值问题,导致重复set
利用incr命令  如果返回值大于1,则用户已经签到过,不需要重复签到
incr key 	key默认不存在设置为0,然后加1,返回1 
incr key 	key存在,直接加1,返回2

列表(list)

相当于java里面的 LinkedList,可以模拟栈和队列

基础命令

lpush 	左边增加 支持批量增加 lpsuh a 1 2 3
lpop 	删除 
lindex 	查找 lindex a 1 
rpush 
rpop
llen   	求长度
lrange key start end 支持-1 负向索引
ltrim key start end  保留区间内的数据

字典(hash)

相当于java里面的 HashMap,数组加链表的实现方式

基础命令

hset  user name 123
hmset 批量设置
hget	user name
hgetall user
hlen user
hincr
hincrby

集合(set)

内部实现相当于一个特殊的字典,字典中所有的value都是一个值 NULL 
set 结构可以用来存储在某活动中中奖的用户 ID,因为有去重功能,可以保证同一个用户不会中奖两次

基础命令

sadd book 1
spop book 随机删除
srem book 1
smembers  求全部数据
sissmember 判断是否存在
scard 	求长度

有序集合(zset)

类似于 Java 的 SortedSet 和 HashMap 的结合体, 一方面它是个 set,保证了内部 value 的唯一性,另一方面,
它可以给每个 value 赋予一个 score,代表这个 value 的排序权重。它的内部实现用的是一种叫作“跳跃列表”的数据结构。
zset 中最后一个 value 被移除后,数据结构被自动删除,内存被回收 。
zset 可以用来存储粉丝列表,value 值是粉丝的用户 ID,score 是关注时间。我们可以对粉丝列表按关注时间进行排序。
zset 还可以用来存储学生的成绩, value 值是学生的 ID, score 是他的考试成绩。我们对成绩按分数进行排序就可以得到他的名次。 

基础命令

zadd books 9 a
zadd books 8 b
zrange books 0 -1
zrevrange books 0 -1
zscore books a 求指定value的score
zrank books a 求指定value的排名
zrangebyscore books 1 9 (1,9] 遍历分值区间 
zrangebyscore books 1 9 (1,9] 遍历分值区间 同时输出score
zrem 删除value
zcard 	求长度

设置过期时间

set key 10
expire key 5 单位为秒
ttl
persist key 移除过期时间限制

通用key命令

keys * 所有key
key a* 表达式求key
exists 判断key存在
del 删除key
rename key
type key 

通用服务器命令

ping 返回pong 表示连接存活
echo ”hello redis” 打印内容
select 选择数据库进行存取
quit 退出
dbsize 返回当前数据库的key数目
info 服务器信息
flushdb 删除当前数据库的key
flushall 删除所有数据库的key

你可能感兴趣的:(Redis)