redis基础

来源:互联网 发布:手机淘宝买东西视频 编辑:程序博客网 时间:2024/05/18 03:24
Redis支持五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

------------------------------------------------------------------
**************************Redis keys命令**************************
------------------------------------------------------------------
1.keys pattern 查看所有符合patterh的key
--keys * 查看所有key
--keys str* 查看key中含有str的key
2.del key --删除对应的key
3.exists key --检测key是否存在
4.expire KEY_NAME TIME_IN_SECONDS --设置key过期时间,超过该时间key-value
5.persist key --移除过期时间,key将持久保存
6.type key --返回key存储的值的类型
7.rename key newkey --修改key的名称
8.move key db --将数据库的key移动到指定数据库db中

------------------------------------------------------------------
**************************Redis 字符串命令************************
------------------------------------------------------------------
1.set key value --设置指定key的值
2.get key --获取指定key的值
3.strlen key --获取指定key的值的字符串长度
4.incr key --将key中存储的数字值加1
5.decr key --将key中存储的数字值减1
6.append key value --若key已存在且为字符串,则将value添加在value末尾

------------------------------------------------------------------
****************************Redis 哈希命令************************
------------------------------------------------------------------
#######hash表特别适合存储对象
hmset key field1 values[filed2 value2] --同时将多个filed-value(域-值)
对设置到哈希表key中
hset key field-value --将哈希表中的字段field的值设为value
hkeys key --获取所有哈希表中字段的值
hvals key --获取哈希表中所有的值
hlen key --获取所有哈希表中字段的数量
hmget key field1[field2] --获取所有给定字段的值
hgetall key --获取在哈希表中指定key的所有字段和值
hexists key field --查看哈希表key中指定的字段是否存在
hdel key field1[field2] --删除一个或多个哈希表字段
hscan key cursor[match pattern][count count]
--迭代哈希表中的元素 例如:hscan key 0

------------------------------------------------------------------
****************************Redis 列表命令************************
------------------------------------------------------------------
lpush key value --向列表头部key中添加元素
lpush key value1[value2] --向列表key头部添加多个元素
llen key --获取列表的长度
lpop key --移出并获取列表的第一个元素
lindex key index --通过索引获取列表中的元素
rpush key value --向列表尾部key中添加元素
rpush key value1[value2] --向列表尾部key添加多个元素
rpop key --移除并获取列表的最后一个元素
lset key index value --通过索引设置列表元素的值
lrange key start end --获取列表指定范围内的元素
ltrim key start end --对列表进行修剪,让列表只保留指定区间的元素

------------------------------------------------------------------
****************************Redis 集合命令************************
--------------------------------------------------------------
Redis的Set是string类型的无序集合。
集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是O(1)。

sadd key value --向集合中添加值
scard key --获取集合中的成员数
smembers key --获取集合中的所有成员
spop key --移除并返回集合中的一个随机数
srem key member1[member2] --移除集合中一个或多个成员
sscan key cursor[match pattern][count count]
--迭代集合中的元素 例如:sscan key 0

------------------------------------------------------------------
****************************zset(sorted set:有序集合)************************
--------------------------------------------------------------
Redis zset 和 set 一样也是string类型元素的集合,且不允许重复的成员。
不同的是每个元素都会关联一个double类型的分数。redis正是通过分数来为集合中的成员进行从小到大的排序。
zset的成员是唯一的,但分数(score)却可以重复。

zadd key score1 member1 [score2 member2]  --向有序集合添加一个或多个成员,或者更新已存在成员的分数
zcard key --获取有序集合的成员数
zcount key min max --计算在有序集合中指定区间分数的成员数
zrange key start stop [withscores] --通过索引区间返回有序集合成指定区间内的成员
zrangebylex key min max [limit offset count] --通过字典区间返回有序集合的成员
zrangebyscore key min max [withscores] [limit] --通过分数返回有序集合指定区间内的成员
zrank key member --返回有序集合中指定成员的索引
zrem key member [member ...] --移除有序集合中的一个或多个成员
zremrangebylex key min max --移除有序集合中给定的字典区间的所有成员
zremrangebyrank key start stop --移除有序集合中给定的排名区间的所有成员
zremrangebyscore key min max --移除有序集合中给定的分数区间的所有成员
zrevrange key start stop [withscores] --返回有序集中指定区间内的成员,通过索引,分数从高到底
zrevrangebyscore key max min [withscores] --返回有序集中指定分数区间内的成员,分数从高到低排序
zrevrank key member --返回有序集合中指定成员的排名,有序集成员按分数值递减(从大到小)排序
zscore key member --返回有序集中,成员的分数值
zunionstore destination numkeys key [key ...] --计算给定的一个或多个有序集的并集,并存储在新的 key 中
zscan key cursor [match pattern] [count count] --迭代有序集合中的元素(包括元素成员和元素分值)

------------------------------------------------------------------
****************************Redis HyperLogLog************************
--------------------------------------------------------------
Redis 在 2.8.9 版本添加了 HyperLogLog 结构。
Redis HyperLogLog 是用来做基数统计的算法,HyperLogLog 的优点是,在输入元素的数量或者体积非常非常大时,计算基数所需的空间总是固定 的、并且是很小的。
在 Redis 里面,每个 HyperLogLog 键只需要花费 12 KB 内存,就可以计算接近 2^64 个不同元素的基 数。这和计算基数时,元素越多耗费内存就越多的集合形成鲜明对比。
但是,因为 HyperLogLog 只会根据输入元素来计算基数,而不会储存输入元素本身,所以 HyperLogLog 不能像集合那样,返回输入的各个元素。

基数:数据集 {1, 3, 5, 7, 5, 7, 8}, 那么这个数据集的基数集为 {1, 3, 5 ,7, 8}, 基数(不重复元素)为5。 基数估计就是在误差可接受的范围内,快速计算基数。

pfadd key element [element ...] --添加指定元素到 hyperloglog 中。
pfcount key [key ...] --返回给定 hyperloglog 的基数估算值。
pfmerge destkey sourcekey [sourcekey ...] --将多个 hyperloglog 合并为一个 hyperloglog



原创粉丝点击