您的位置:首页 > 数据库 > Redis

Redis五种数据类型使用总结

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

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

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

字符串类型(String)
散列类型(Hash)
列表类型(List)
集合类型(Set)
有序集合类型(SortedSet)

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

各数据类型的使用及操作命令:

1. String: key - value

设置值

set key value

获取值

get key

加一

inc key

减一

decr key
2. Hash: key - field - value
相当于Java中的Map<String, Map<String, String>>类型

设置值

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 的持久化放案恢复数据
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息