栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Java

Redis数据库:数据类型

Java 更新时间:发布时间: 百科书网 趣学号
数据类型

MySQL数据库是一种经典的关系型数据库,不同于MySQL数据库,Redis是一种高级的基于Key-Value的非关系型数据库,其中Value支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。如下图所示:

Strings

字符串类型是Redis中最为基础的数据存储类型,它在Redis中以二进制保存,没有编码和解码的过程。无论存入的是字符串、整数、浮点类型都会以字符串写入。在Redis中字符串类型的Value最多可以容纳的数据长度是512M。这是以后最常用的数据类型。

常用命令

1、set key value:添加一个字符串类型的key和value,返回OK表示添加成功。
2、get key:从数据库中取出一个指定key的value,如果有返回值,如果没有返回nil。
3、del key:删除指定的键和值,如果删除成功,返回删除的个数,否则返回0。
4、mset key1 value1 [key2 value2 …]:指定多个key的value。
5、mget key1 [key2 …]:获取多个key的value。
6、incr key:将 key 中储存的值value增加一。
7、incrby key increment:将key中存储的的值value增加increment。

使用方法
127.0.0.1:6379> set a 10
OK
127.0.0.1:6379> get a
"10"
127.0.0.1:6379> del a
(integer) 1
127.0.0.1:6379> mset a 10 b 20 c 30
OK
127.0.0.1:6379> mget a b c
1) "10"
2) "20"
3) "30"
127.0.0.1:6379> incr a
(integer) 11
127.0.0.1:6379> incrby b 10
(integer) 30
Hashes

Redis中的Hash类型可以看成具String的键和String的值Map容器,每一个Hash可以存储40亿个键值对。

常用命令

1、hset key field value:向指定的键中添加一对hash类型的字段名和值。
2、hget key field:取出指定键的指定字段的值。
3、hmset key field1 value1 [field2 value2 …]:向某个键中设置多个字段名和值。
4、hmget key field1 [field2 …]:从指定的键中得到多个字段的值。
5、hdel key field1 [field2 …]:删除一个键中的一个或多个字段。
6、hgetall key:得到某个键所有的字段值。

使用方法
127.0.0.1:6379> hset user name mary
(integer) 1
127.0.0.1:6379> hget user name
"mary"
127.0.0.1:6379> hdel user name
(integer) 1
127.0.0.1:6379> hmset user name mary sex man age 15
OK
127.0.0.1:6379> hmget user name sex age
1) "mary"
2) "man"
3) "15"
127.0.0.1:6379> hgetall user
1) "name"
2) "mary"
3) "sex"
4) "man"
5) "age"
6) "15"
Lists

在Redis中,List类型是按照插入顺序排序的字符串链表。和数据结构中的普通链表一样,我们可以在其左部(left)和右部(right)添加新的元素。在插入时,如果该键并不存在,Redis将为该键创建一个新的链表,如果这个键已经存在,则是向list添加元素。与此相反,如果链表中所有的元素均被移除,那么该键也将会被从数据库中删除。List中可以包含的最大元素数量是40亿个。

常用命令

1、lpush key value1 [value2 …]:在列表的左边向指定的键key中添加列表元素,如果该键并不存在,Redis将为该键创建一个新的链表,如果这个键已经存在,则是向list添加元素。
2、rpush key value1 [value2 …]:在列表的右边向指定的键中添加列表元素。
3、lpop key:从指定键中的左边弹出一个元素,列表中的元素就删除了。
4、rpop key:从指定键的右边弹出一个元素,列表中的元素就删除了。
5、lrange key start stop:从指定键的列表中取出指定范围的元素列表,从左边数起从0开始,从右边数起从-1开始。如果要取整个列表,开始是0,结束是-1。
6、llen key:得到指定列表的长度。
7、lindex key index:通过索引获取列表中的元素。

使用方法
127.0.0.1:6379> lpush a 2 3 4 5
(integer) 4
127.0.0.1:6379> rpush a 1
(integer) 5
127.0.0.1:6379> lrange a 0 -1
1) "5"
2) "4"
3) "3"
4) "2"
5) "1"
127.0.0.1:6379> lpop a
"5"
127.0.0.1:6379> rpop a
"1"
127.0.0.1:6379> llen a
(integer) 3
127.0.0.1:6379> lindex a 1
"3"
Sets

在Redis中,我们可以将Set类型看作为没有排序的字符集合,和List类型一样,我们也可以在该类型的数据值上执行添加、删除或判断某一元素是否存在等操作。Set可包含的最大元素数量是40亿,和List类型不同的是,Set集合中不允许出现重复的元素。

常用命令

1、sadd key value1 [value2 …]:向set集合中添加1个或多个元素。
2、smembers key:查询指定的集合中所有的元素。
3、sismember key value:判断指定的元素是否在某个集合中,如果存在返回1,否则返回0。
4、srem key value1 [value2 …]:删除指定的一个或多个元素。
5、sunion key1 key2:返回给定集合的并集。不存在的集合 key 被视为空集。

使用方法
127.0.0.1:6379> sadd a 1 2 3
(integer) 3
127.0.0.1:6379> smembers a
1) "1"
2) "2"
3) "3"
127.0.0.1:6379> sismember a 2
(integer) 1
127.0.0.1:6379> srem a 2
(integer) 1
127.0.0.1:6379> smembers a
1) "1"
2) "3"
127.0.0.1:6379> del b
(integer) 1
127.0.0.1:6379> sadd b 4 5 6
(integer) 3
127.0.0.1:6379> sunion a b
1) "1"
2) "3"
3) "4"
4) "5"
5) "6"
Sorted Sets

Redis 有序集合和集合一样也是无序不可以重复。不同的是每个元素都会关联一个分数。redis正是通过分数来为集合中的成员进行从小到大的排序。有序集合的成员是唯一的,但分数(score)却可以重复,每个集合可存储40多亿个成员。

常用命令

1、zadd key score1 value1 [score2 value2 …]:向有序集合添加一个或多个成员。
2、zrange key start stop:通过索引区间返回有序集合中指定区间内的成员。
3、zrem key value1 [value2 …]:移除有序集合中的一个或多个成员。
4、zrank key value:返回有序集合中指定成员的索引。
5、zcard key:获取有序集合的成员数。
6、zscore key value:得到指定成员的分数。

使用方法
127.0.0.1:6379> zadd set 10 a 20 b 30 c
(integer) 3
127.0.0.1:6379> zrange set 0 2
1) "a"
2) "b"
3) "c"
127.0.0.1:6379> zrem set a c
(integer) 2
127.0.0.1:6379> zrank set b
(integer) 0
127.0.0.1:6379> zcard set
(integer) 1
127.0.0.1:6379> zscore set b
"20"
转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/957293.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号