和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的命令。
网友评论