redis其他数据类型实践

和redis一样有名的高性能键值缓存服务器memcached,性能和redis相差无几,但对数据结构支持就不如redis丰富。memcached目前支持字符串类型string,redis除了字符串之外还支持列表List、集合Set、散列Hash,有序集合ZSet,下面开始一个一个的介绍这5个类型

1.string类型实际上不仅仅包括字符串类型,还包括整型,浮点型。redis可对整个字符串或字符串一部分进行操作,而对于整型/浮点型可进行自增、自减操作。

比如:set age 30  返回ok,说明设置key成功,值为30。执行decr age,返回"29"(自减)

getrange  name 0 2  这个命令返回name的值从0到2的字符串内容

2.list类型,对数据结构比较熟悉的同学,应该会对list比较容易理解。操作list的时候,可以对list的尾部和头部添加数据,命令分别是rpush和lpush。

比如:lpush list1  a b c 这句脚本会在list1中插入三个元素,第一个是c,第二个是b,第三个是a。

然后就是lpop命令,从头部弹出元素并返回,rpop命令,从列表尾部弹出元素并返回。

获取列表中的元素用lrange和lindex命令,lindex命令获取列表指定位置的元素,lrange命令获取指定范围的所有元素。list还支持从中间插入和删除元素,暂且不表。

3.set 类型  ,可以无序的存储数据。sadd命令是添加元素的命令。

比如,sadd  myset ok,把ok字符串添加到 名为myset的集合中去。

获取set所有元素,用smembers 命令,smembers  myset.注意,返回的元素是无序的。

sismember命令用来检查元素是否属于某个集合,如果属于则返回1.否则返回0。

移除集合中的元素,用srem命令,如果该元素存在,则 移除并返回1,不存在则返回0。

4.hash类型,感觉这个更像是java中的map对象,可以存储键值对。

比如hset myhash name jimmy;hset myhash age 20.

获取某个键对应的值,用hget命令: hget myhash age 就会返回20。

hgetall myhash 会返回散列myhash中所有的键值内容。

hdel命令用来删除一个键值对,比如 :hdel myhash name

5.zset 有序集合类型,常用命令有zadd,添加键值对 zrange  返回制定范围的键值对,范围从0到-1,会返回所有键值对。zrem命令,删除键值对

这几种类型的命令,从前缀就可以看出端倪。l开头的是list的命令,s开头的,是集合set的命令,

h开头的,是散列hash的命令,z开头的,是有序集合zset的命令。

你可能感兴趣的:(redis其他数据类型实践)