夺命雷公狗---Redis---2-Redis数据结构
1、string(字符串)
还种类型和memcache是一样的。
2、hash(哈希)
哈希类型,可以直接存储关系型数据库里面的一行数据。
3、list(链表)
链表就可以模拟队列和栈
队列:先进先出
栈: 先进后出
模拟队列:
4、set(集合)
集合特点:唯一的,无序性
集合之间的换算:交集,并集,差集
5、zset(有序集合)
redis的数据类型讲解相关命令
1、string类型
String是最简单的类型,一个 key对应一个Value,String类型是二进制安全的。Redis的 string可以包含任何数据,比如jpg图片或者序列化的对象。
(1)set
设置键,值
语法:set 键名称 值
例如:我们添加一个name=“hanguo”的键值对。
添加设置
set name lisi
这样即可,如果想覆盖,那就更简单了
set name zhangfei
这样即可完成覆盖了
(2)get
获取key对应的string值,如果key不存在返回 nil,
语法:get 键名称
get name
这样即可获取到刚才所设置的数据了
(3)Setnx
设置键时,先判断一下该键是否存在,如果key已经存在,返回0,nx是not exist的意思。
若键已经存在,则设置不成功,返回0
(4)setex
设置key对应的值为string类型的value,并指定此键值对应的有效期。
语法:setex 名称 有效期 值
例如:我们添加一个color = red的键值对,并指定有效期为10秒。
10秒钟过后在查下,他将会变成null,如下图所示
替换字符串中某些字符
语法:setrange 键名称 开始替换的序号 替换为的内容
例如:我们希望将leigood的qq邮箱替换为aliyun.com邮箱
(6)mset
一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置。
语法:
mset 名称1 值1 名称2 值2
(7)msetnx
一次设置多个key的值,成功返回ok表示所有的值都设置了,失败返回0表示没有任何值被设置,但是不会覆盖已经存在的key。
(8)getset
设置key的值,并返回key的旧值。(设置新值,获取旧值。)
(9)getrange
获取key的value值的范围内的子字符串
getrange name 0 5
(10)mget
一次获取多个key的值,如果对应key不存在则对应返回nil。
(11)incr
对key的值做加加操作,并返回新的值。
incrby
同incr类似,加指定值,key不存在时候会设置key,并认为原来的value是0。
(12)decr
对key的值做减减操作。
decrby
同decr类似,减指定值
(13)append
给指定key的字符串追加value,返回新字符串值的长度。
(14)strlen
取指定key的value值的长度。
2、hashes类型
Redis hash是一个string类型的field和value的映射表。它的添加、删除操作都是0(1)(平均)。hash特别适合用于存储对象。相较于将对象的每个字段存成单个string类型。将一个对象存储在hash类型中会占用更少的内存,并且可以更方便的存取整个对象。
(1)hset
设置hash field为指定值,如果 key不存在,则先创建。
语法:
hset 哈希名称 字段名称 值
构造键:
如果想获取里面的值那就使用hget或则查看全部的hgetall即可
(2)hget(单个查看)hgetall(查看全部的)
取出hash field的值。语法:hget 哈希名称 字段名称
(3)hsetnx
设置hash field为指定值,如果key不存在,则先创建,如果存在则返回0
(4)hmset
同时设置hash的多个field
语法:hmset 哈希名称 field1 value1 field2 value2
(5)hmget
获取全部指定的hash field。
语法:hmget 哈希名称 field1 field2
(6)hincrby
指定的 hash field加上给定的值。
(7)hexists
测试指定的 field是否存在。
存在的返回1,不存在的返回0
(8)hlen
返回指定hash的field数量。
(9)hdel
删除指定hash的field
语法:hdel 哈希名 field
(10)hkeys
返回hash的所有field
(11)hvals
返回hash的所有 value。
在实际应用中可以参考手册,手册的下载地址:
点击下载 访问密码 6ebc