Redis五种数据类型使用总结

redis是用C语言开发的一个开源的高性能键值对(key-value)数据库(nosql),应用在缓存.它通过提供多种键值数据类型来适应不同场景下的存储需求.


redis的应用场景:
    1. 缓存
    2. 分布式集群架构中的session分离
    3. 任务队列(秒杀、抢购、12306等等)
    4. 应用排行榜(SortedSet)
    5. 网站访问统计
    6. 数据过期处理(expire)

目前为止redis支持的键值数据类型有5种.如下:

    1. 字符串类型(String)
    2. 散列类型(Hash)
    3. 列表类型(List)
    4. 集合类型(Set)
    5. 有序集合类型(SortedSet)


redis是单线程的,不适合存储比较大的数据.redis中所有的数据都是字符串.

各数据类型的使用及操作命令:
1. String: key - value
  • 设置值
set key value
  • 获取值
get key
  • 加一
inc key
  • 减一
decr key
2. Hash: key - field - value
相当于Java中的Map>类型
  • 设置值
hset key field value
  • 获取值
hget key field
  • 加num
hincrby key field num

3. List
List是有顺序可重复的,数据结构为双链表队列,可以从左右两个方向添加元素.
  • 从左添加元素
lpush list a b c d
  • 从右添加元素
rpush list 1 2 3 4
  • 查看区间上的数据(从0到-1表示查看所有)
lrange list 0 -1
  • 从左边取数据(弹栈删除)
lpop list
  • 从右边取数据(弹栈删除)
rpop list
redis 127.0.0.1:6379> lpush list a b c d
(integer) 4
redis 127.0.0.1:6379> lrange list 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
redis 127.0.0.1:6379> rpush list 1 2 3 4
(integer) 8
redis 127.0.0.1:6379> lrange list 0 -1
1) "d"
2) "c"
3) "b"
4) "a"
5) "1"
6) "2"
7) "3"
8) "4"
redis 127.0.0.1:6379> lpop list
"d"
redis 127.0.0.1:6379> lrange list 0 -1
1) "c"
2) "b"
3) "a"
4) "1"
5) "2"
6) "3"
7) "4"
redis 127.0.0.1:6379>

4. Set
Set无序,不能重复.
  • 添加元素
sadd set a b c d d
  • 查询元素
smembers set
  • 删除元素
srem set a
5. SortedSet(zset)
zset有顺序,不能重复
适合做排行榜,排序需要一个分数属性
  • 添加元素
zadd zset score member( score member可以有多个)
  • 查看元素,从小到大(如果要查看分数,需加上withscores)
zrange zset start end [withscores]
  • 查看元素,从大到小(如果要查看分数,需加上withscores)
zrevrange zset start end [withscores]
  • 对member元素增加score
zincrby zset score member

其它命令
设置key的过期时间(单位:秒)
expire key second
查看剩余时间(-2: 不存在, -1: 已被持久化, 正数表示剩余的时间)
ttl key
清除过期时间(即持久化,成功返回1,失败返回0)
persist key
删除key
del key
判断是否存在(存在返回1,不存在返回0)
exists key
选择数据库,默认是0号数据库
select 0

redis持久化方案
redis数据都放在内存中,如果机器挂掉,内存的数据就会丢失,因此需要做持久化,将内存中的数据保存在磁盘,下一次启动的时候就可以恢复数据到内存中.
redis持久化有两种方式(默认开启RDB)
1.RDB  快照形式  定期将当前时刻的数据保存磁盘中,会产生一个dump.rdb文件
特点: 会存在数据丢失,性能较好,数据备份
2.AOF(append only file)  记录所有对redis的操作命令记录在aof文件中,恢复数据只需重新执行一遍即可
特点: 每秒保存,数据比较完整,耗费性能
如果同时开启两个持久化方案,则按照 AOF 的持久化放案恢复数据

你可能感兴趣的:(数据库)