memcached & redis基本操作

memcached

安装与连接

使用docker进行启动:docker run -p 11211:11211 -d --name memcached memcached

使用telnet 进行连接:telnet 10.141.4.25 11211

常用操作

存储命令

set
set key flags exptime bytes [noreply]
value
实例:
set mykey 05005
relax

add

add key flags exptime bytes [noreply]
value
实例:
add newkey 04009
memcached

replace

replace key flags exptime bytes [noreply]
value
实例:
replace newkey 04005
sleep

prepend

prepend key flags exptime bytes [noreply]
value
实例:
prepend newkey 04006
go to

append

append key flags exptime bytes [noreply]
value
实例:
append newkey 04003
ok?

cas

cas key flags exptime bytes unique_cas_token [noreply]
value

查找命令

get
get key
get key1 key2 key3

gets
gets key
gets key1 key2 key3

delete

delete key [noreply]

incr

incr key increment_value

decr

decr key increment_value

统计命令

stats

用于返回统计信息例如 PID(进程号)、版本号、连接数等。

stats items
stats slabs
sitats sizes
flush_all

java连接Memcached

依赖:

<dependency>

    <groupId>net.spy</groupId>

    <artifactId>spymemcached</artifactId>

    <version>2.12.1</version>

</dependency>

redis

简介

一个高性能的key-value数据库。支持数据的持久化,支持key-value,list,set,zset,hash的存储。它通常被称为数据结构服务器,因为值(value)可以是五种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。

读110000次/s, 写81000次/s。

安装和连接

docker run -d -p 6361:6379  --name redis redis

redis-cli -h 10.127.12.16 -p 6361

常用操作

String

# String字符串
SET key value                               //将字符串值value关联到key。
EXPIRE key seconds                          //设置生存时间,单位为秒。
TTL key                                     //剩余生存时间。
SETRANGE key offset value                   //用value参数覆写(Overwrite)给定key所储存的字符串值,从偏移量offset开始。
SETEX key seconds value                     //将值value关联到key,并将key的生存时间设为seconds(以秒为单位)。
MSET key value [key value ...]              //同时设置一个或多个key-value对。
MSETNX key value [key value ...]            //同时设置一个或多个key-value对,当且仅当key不存在。
APPEND key value                            //如果key已经存在并且是一个字符串,APPEND命令将value追加到key原来的值之后。不存在就添加。
GET key                                     //返回key所关联的字符串值。
MGET key [key ...]                          //返回所有(一个或多个)给定key的值。
GETRANGE key start end                      //返回key中字符串值的子字符串,字符串的截取范围由start和end两个偏移量决定(包括start和end在内)。
GETSET key value                            //将给定key的值设为value,并返回key的旧值。
STRLEN key                                  //返回key所储存的字符串值的长度。
DECR key                                    //将key中储存的数字值减一。
DECRBY key decrement                        //将key所储存的值减去减量decrement。
INCR key                                    //将key中储存的数字值增一。
INCRBY key increment                        //将key所储存的值加上增量increment。
SETBIT key offset value                     //对key所储存的字符串值,设置或清除指定偏移量上的位(bit)。
GETBIT key offset                           //对key所储存的字符串值,获取指定偏移量上的位(bit)。

Hash

# Hash表
HSET key field value                        //将哈希表key中的域field的值设为value。
HSETNX key field value                      //将哈希表key中的域field的值设置为value,当且仅当域field不存在。
HMSET key field value [field value ...]     //同时将多个field - value(域-值)对设置到哈希表key中。
HGET key field                              //获取哈希表key的域field的值。
HMGET key field [field ...]                 //同事获取多个哈希表key的多个域的值。
HGETALL key                                 //返回哈希表key中,所有的域和值。
HDEL key field [field ...]                  //删除哈希表key中的一个或多个指定域,不存在的域将被忽略。
HLEN key                                    //返回哈希表key中域的数量。
HEXISTS key field                           //查看哈希表key中,给定域field是否存在。
HINCRBY key field increment                 //为哈希表key中的域field的值加上增量increment。
HKEYS key                                   //返回哈希表key中的所有域。
HVALS key                                   //返回哈希表key中的所有值。

List

# Lish表
LPUSH key value [value ...]                 //将一个或多个值value插入到列表key的表头。
LPUSHX key value                            //将值value插入到列表key的表头,当且仅当key存在并且是一个列表。当key不存在时,LPUSHX命令什么也不做。
RPUSH key value [value ...]                 //将一个或多个值value插入到列表key的表尾。
RPUSHX key value                            //将值value插入到列表key的表尾,当且仅当key存在并且是一个列表。当key不存在时,RPUSHX命令什么也不做。
LPOP key                                    //移除并返回列表key的头元素。
RPOP key                                    //移除并返回列表key的尾元素。
BLPOP key [key ...] timeout                 //是列表的阻塞式(blocking)弹出原语,当给定列表内没有任何元素可供弹出的时候,连接将被BLPOP命令阻塞,直到等待超时或发现可弹出元素为止。
BRPOP key [key ...] timeout                 //是列表的阻塞式(blocking)弹出原语,当给定列表内没有任何元素可供弹出的时候,连接将被BLPOP命令阻塞,直到等待超时或发现可弹出元素为止。
LLEN key                                    //返回列表key的长度。
LRANGE key start stop                       //返回列表key中指定区间内的元素,区间以偏移量start和stop指定。
LREM key count value                        //移除列表中与参数value相等的元素。count > 0,从表头开始向表尾搜索,移除与value相等的元素,数量为count。count=0,删除所有。
LSET key index value                        //将列表key下标为index的元素的值甚至为value。
LTRIM key start stop                        //对一个列表进行修剪(trim),就是说,让列表只保留指定区间内的元素,不在指定区间之内的元素都将被删除。
LINDEX key index                            //返回列表key中,下标为index的元素。
LINSERT key BEFORE|AFTER pivot value        //将值value插入到列表key当中,位于值pivot之前或之后。
RPOPLPUSH source destination                //将列表source中的最后一个元素(尾元素)弹出,并返回给客户端。将source弹出的元素插入到列表destination,作为destination列表的的头元素。
BRPOPLPUSH source destination timeout       //是RPOPLPUSH的阻塞版本,当给定列表source不为空时,BRPOPLPUSH的表现和RPOPLPUSH一样。 

Set

#集合基础知识
A = {'a','b','c'}
B = {'a','e','i','o','u'}

inter(x, y): 交集,在集合x和集合y中都存在的元素。
inter(A, B) = {'a'}

union(x, y): 并集,在集合x中或集合y中的元素,如果一个元素在x和y中都出现,那只记录一次即可。
union(A,B) = {'a','b','c','e','i','o','u'}

diff(x, y): 差集,在集合x中而不在集合y中的元素。
diff(A,B) = {'b','c'}

card(x): 基数,一个集合中元素的数量。
card(A) = 3

空集: 基数为0的集合。

#Set
SADD key member [member ...]                //将一个或多个member元素加入到集合key当中,已经存在于集合的member元素将被忽略。
SREM key member [member ...]                //移除集合key中的一个或多个member元素,不存在的member元素会被忽略。
SMEMBERS key                                //返回集合key中的所有成员。。
SISMEMBER key member                        //判断member元素是否是集合key的成员。
SCARD key                                   //返回集合key的基数(集合中元素的数量)。
SMOVE source destination member             //将member元素从source集合移动到destination集合。
SPOP key                                    //移除并返回集合中的一个随机元素。
SRANDMEMBER key                             //返回集合中的一个随机元素。
SINTER key [key ...]                        //返回给定集合的交集。
SINTERSTORE destination key [key ...]       //此命令等同于SINTER,但它将结果保存到destination集合,而不是简单地返回结果集。
SUNION key [key ...]                        //返回给定集合的并集。
SUNIONSTORE destination key [key ...]       //此命令等同于SUNION,但它将结果保存到destination集合,而不是简单地返回结果集。
SDIFF key [key ...]                         //返回所有给定集合的差集。
SDIFFSTORE destination key [key ...]        //此命令等同于SDIFF,但它将结果保存到destination集合,而不是简单地返回结果集。

Zset

#Sorted Set
ZADD key score member [[score member] [score member] ...]           //将一个或多个member元素及其score值加入到有序集key当中。score值可以是整数值或双精度浮点数。
ZREM key member [member ...]                                        //移除有序集key中的一个或多个成员,不存在的成员将被忽略。
ZCARD key                                                           //返回有序集key的基数。
ZCOUNT key min max                                                  //返回有序集key中,score值在min和max之间(默认包括score值等于min或max)的成员。
ZSCORE key member                                                   //返回有序集key中,成员member的score值。
ZRANGE key start stop [WITHSCORES]                                  //返回有序集key中,指定区间内的成员。
ZREVRANGE key start stop [WITHSCORES]                               //返回有序集key中,指定区间内的成员,其中成员的位置按score值递减(从大到小)来排列。
ZRANGEBYSCORE key min max [WITHSCORES] [LIMIT offset count]         //返回有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。有序集成员按score值递增(从小到大)次序排列。
ZREVRANGEBYSCORE key max min [WITHSCORES] [LIMIT offset count]      //返回有序集key中,score值介于max和min之间(默认包括等于max或min)的所有的成员。有序集成员按score值递减(从大到小)的次序排列。
ZRANK key member                                                    //返回有序集key中成员member的排名。其中有序集成员按score值递增(从小到大)顺序排列。
ZREMRANGEBYRANK key start stop                                      //移除有序集key中,指定排名(rank)区间内的所有成员。
ZREMRANGEBYSCORE key min max                                        //移除有序集key中,所有score值介于min和max之间(包括等于min或max)的成员。
ZINTERSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
//计算给定的一个或多个有序集的交集,其中给定key的数量必须以numkeys参数指定,并将该交集(结果集)储存到destination。
ZUNIONSTORE destination numkeys key [key ...] [WEIGHTS weight [weight ...]] [AGGREGATE SUM|MIN|MAX]
//计算给定的一个或多个有序集的并集,其中给定key的数量必须以numkeys参数指定,并将该并集(结果集)储存到destination。

时间: 2024-10-05 06:13:44

memcached & redis基本操作的相关文章

Python自动化 【第十一篇】:Python进阶-RabbitMQ队列/Memcached/Redis

 本节内容: RabbitMQ队列 Memcached Redis 1.  RabbitMQ 安装 http://www.rabbitmq.com/install-standalone-mac.html 安装python rabbitMQ module pip install pika or easy_install pika or 源码 https://pypi.python.org/pypi/pika 实现最简单的队列 send 端 received 端 1.1 Work Queues 在这

memcached&amp;redis性能测试

转自:http://www.iigrowing.cn/memcached-redis-xing-neng-ce-shi.html 一.Memcached 1.1.memcached简介 Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提供动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通

三、Redis基本操作——List

小喵的唠叨话:前面我们介绍了Redis的string的数据结构的原理和操作.当时我们提到Redis的键值对不仅仅是字符串.而这次我们就要介绍Redis的第二个数据结构了,List(链表).由于List在原理上的实现并不是特别的复杂,我们在这里将原理和具体的命令都放在一起介绍. 小喵的个人博客地址: http://www.miaoerduo.com/ ,欢迎随时骚扰~ 该博客原地址: http://www.miaoerduo.com/redis/三.redis基本操作-list.html ,排版应

jedis使用线程池封装redis基本操作

redis客户端 jedis 常用的 操作 key value hash list set zset 的基本操作 package cn.zto.util; import java.util.List; import java.util.Map; import java.util.Set; import org.junit.Test; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import red

缓存:Memcached Redis

一.Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度.Memcached基于一个存储键/值对的hashmap.其守护进程(daemon )是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信. 1.Memcached安装配置 #安装倚赖包 yum install libevent-devel #安装软件 yum

Memcached, Redis, MongoDB区别

mongodb和memcached不是一个范畴内的东西.mongodb是文档型的非关系型数据库,其优势在于查询功能比较强大,能存储海量数据.mongodb和memcached不存在谁替换谁的问题. 和memcached更为接近的是redis.它们都是内存型数据库,数据保存在内存中,通过tcp直接存取,优势是速度快,并发高,缺点是数据类型有限,查询功能不强,一般用作缓存.在我们团队的项目中,一开始用的是memcached,后来用redis替代. 相比memcached: 1.redis具有持久化机

Redis基本操作

不同于Memcached的是, Redis提供持久化存储, 支持多种数据结构, 支持数据备份. 安装 wget http://download.redis.io/releases/redis-2.8.17.tar.gz tar xzf redis-2.8.17.tar.gz cd redis-2.8.17 make make完后 redis-2.8.17目录下会出现编译后的redis服务程序redis-server,还有用于测试的客户端程序redis-cli,两个程序位于安装目录 src 目录下

Memcached Redis相关的干货

为了以后查阅方便,所以转了各位的博文,感谢各位原博主. http://www.searchtb.com/2011/05/redis-storage.html           redis内存存储结构分析 http://blog.csdn.net/tonysz126/article/details/8280696/        redis与memcached的区别 http://kenby.iteye.com/blog/1423989                              

centos7下搭建nginx+php7.1+mariadb+memcached+redis

一.环境准备 1.首先介绍一下环境,以及我们今天的主角们 我用的环境是最小化安装的centos7,mariadb(江湖传言mysql被oracle收购后,人们担心像java一样毁在oracle手上于是成了新的分支,但是还是像mysql一样用), php7.1.0(版本无所谓,都是7版本),nginx1.10(我们安装的是稳定版而没有一味的追求新),memcached,和redis可以随机选择一个,当然全安装也没有干扰 2.软件包下载 1)mariadb软件包(yum安装,编译安装因为boost问