Redis简介及其基本数据类型

Redis简介

Redis是一个开源的key-value存储系统,和Memcached类似,它支持更多的value类型,包括string(字符串)、list(链表)、set(集合)、zset(有序集合)和hash(哈希)。他们都支持pop()、push()以及add()或remove(),并且这些操作都是原子的。另外,Redis支持各种各样的排序。为了保证效率,Redis也是将数据缓存在内存中,并且提供了持久化机制RDB和AOF,并且也实现了主从复制。Redis默认16个数据库,下标从0开始(默认使用)。Redis所有的库拥有统一的密码管理,都是相同的。Redis是单线程+多路IO复用技术实现。

string相关

string是Redis最基本的数据类型,一个key对应一个value。

string可以包含任何数据,比如图片,序列化对象,因为他是二进制安全的。

string中的一个字符串value最多可以是512M。

set  key  value	                    添加
get  key  value 	               	获取
del   key            		 	    删除
keys *                				查看所有键
append  key  value				    追加值
strlen    key          				返回长度
incr/decr   key					 	自增自减、值为整形
incrby/decrby  key  步长            增加或减少指定长度
getrange key 0 -1                  获取全部
getrange key 0 3                   获取0到3的字符串
setrange key 0 xxx                 将key从0开始设置连续xxx进行覆盖
setex  key   10  value             添加字符串同时设定过期时间
ttl key                            查看key剩余过期时间
setnx   key  value   			   key不存在添加该值
mset  k1  v1   k2  v2   k3   v3    同时添加多个指
mget   k1    k2    k3              同时获取多个值
getset  key   value       		   先获取再设置

List相关

单键多值。

Redis列表是一个简单的字符串列表,按照插入的顺序,你可以添加在头部或者尾部。

底层维护了一个双向列表,通过索引操作中间的节点性能较差,但操作两端节点性能较好。

lpush			从列表左侧头部添加数据
rpush			从右侧尾部添加数据
lpop			从给左侧头部取出一个元素
rpop			从右侧尾部取出一个元素
lrange			取出指定范围的元素
Lrem			删除列表指定元素
lindex			获取第几个坐标下的值
llen			获取列表的长度
lset 			修改坐标小的值
Linsert 		指定位置添加元素

set相关

set与list类似,但是set是自动排重的,当你不希望列表数据出现重复数据时,可以选择set。

set是一个string类型的无序集合,它的底层实现是一个value为null的哈希表,所以比较高效,添加、删除的复杂度都是O(1)。

sadd key member1 [member2]		 向集合添加一个或多个成员
scard key 						 获取集合的成员数
sdiff key1 [key2]				 返回给定所有集合的差集
sdiffstore destination key1 [key2]  	返回给定所有集合的差集并存储在 destination 中
sinter key1 [key2] 				 返回给定所有集合的交集
sinterstore destination key1 [key2] 	返回给定所有集合的交集并存储在 destination 中
sismember key member 			 判断 member 元素是否是集合 key 的成员
smembers key 					 返回集合中的所有成员
smove source destination member  将 member 元素从 source 集合移动到 destination 集合
spop key 						 移除并返回集合中的一个随机元素
srandmember key [count]  		 返回集合中一个或多个随机数
srem key member1 [member2]		 移除集合中一个或多个成员
sunion key1 [key2] 				 返回所有给定集合的并集
sunionstore destination key1 [key2] 	所有给定集合的并集存储在 destination 集合中
sscan key cursor [match pattern] [count count] 		迭代集合中的元素

zset相关

没有重复的字符串集合。

每个成员关联一个评分,zset会根据评分进行排序。

元素不可重复,评分可以重复。

zadd			添加一个元素和他的属性值,可以一次添加多个
zscore			根据元素查他的属性值
zcard			返回所有集合的个数
zcount			取在这个属性范围内元素的个数
zrange			偏移取值,取start与end中的值,依据属性,可添加
zrevrange		递减排序
zrank			返回元素排名
zrevrank		返回元素排名
zrangebylex		范围查询
zlexcount		属性相同的集合,返回取值
zrem			删除1个或者多个成员
zremrangebyrank	删除指定排名区间的元素
zremrangebyscore	区间删除,依据属性值
zremrangebylex	属性值相同的集合,偏移删除

hash相关

hash是一个键值对集合。

hash适合存储对象。

类似于Java当中的Map<string ,string >

hset user id				向 user(map) 中添加 key-value 对(id,1)
hget user i		           	获取 user 中的 id 所对应的值:
hmset user name zhangsan sex man            设置多个 key-value 对:
hmget user name sex         获取多个 key:
hgetall user                获取 user 中的所有 key-value 对:
hdel user sex		        删除 map 中的 key为sex的键值对:
hlen user                   获取 user 中的 key-value 对的个数:
hexists user id             判断 user 中是否包含 id(包含:1,不包含:0):
hkeys user                  返回 user 中所有的 key:
hvals user                  返回 user 中所有的 values
hincrby user id 4           给 user 中的 id 加 4(必须是数字):
hincrbyfloat user id 2.3    hincrbyfloat 可以加浮点数:
hsetnx user id 2            如果 id 不存在才设置,否则失败:

做个总结,用起来方便~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值