String是redis最基本的类型,你可以理解成Memcached一模一样的类型,一个key对应一个value。 String类型是二进制安全的,意思是redis的string可以包含任何数据,比如jpg图片或者序列化的对象。 String类型是redis最基本的数据类型,一个redis中字符串value最多可以是512M 常用命令说明:
#======================= #set get del append strlen #======================= 127.0.0.1:6379> set key wyt #设置值String数据结构是简单的key-value类型,value其实不仅可以是String,也可以是数字。 常规key-value缓存应用: 常规计数:微博数,粉丝数等。OK
127.0.0.1:6379> get key #获取key "wyt"
127.0.0.1:6379> del key #删除key
(integer) 1
127.0.0.1:6379> keys * #查看全部的key
(empty array)
127.0.0.1:6379> exists key #确保key是否存在
(integer) 0
127.0.0.1:6379> append key wyt#对不存在的key进行append,等同于set key wyt
(integer) 3 #字符长度
127.0.0.1:6379> append key -lmp-hyd #对已存在的字符串进行append
(integer) 11 #长度从3个字符增加到11个字符
127.0.0.1:6379> get key
"wyt-lmp-hyd"
127.0.0.1:6379> strlen key #获取字符串的长度
(integer) 11
#================================ # incr decr 自增 自减 一定要是数字才能进行加减 +1 和-1 # incyby decrby 命令将key中存储的数字加上指定的值 #================================
127.0.0.1:6379> set browse 0 #设置浏览量为0
OK
127.0.0.1:6379> incr browse #浏览 +1
(integer) 1
127.0.0.1:6379> incr browse #浏览 +1
(integer) 2
127.0.0.1:6379> decr browse #浏览 -1
(integer) 1
127.0.0.1:6379> incrby browse 10#浏览 +10
(integer) 11
127.0.0.1:6379> decrby browse -10#浏览 +10
(integer) 21
127.0.0.1:6379> decrby browse 10 #浏览 -10
(integer) 11
#================================ # range 【范围】 # getrange 获取指定区间范围内的值,类似between...and的关系。从0到-1表示全部 #================================ 127.0.0.1:6379> set key wyt-lmp-hyd #设置key的值
OK
127.0.0.1:6379> getrange key 0 -1#获取全部的值
"wyt-lmp-hyd"
127.0.0.1:6379> getrange key 0 3 #截取部分字符串
"wyt-"
#============================= # setrange 设置指定区间范围内的值,格式是setrange key值 具体值 #============================= 127.0.0.1:6379> get key
"wyt-lmp-hyd"
127.0.0.1:6379> setrange key 4 cby#替换值
(integer) 11
127.0.0.1:6379> get key
"wyt-cby-hyd" #============================= # setex(set with expire)键秒值 # setnx (set if not exist) #=============================
127.0.0.1:6379> setex key2 60 yjy #设置过期时间
OK
127.0.0.1:6379> ttl key2#查看剩余时间
(integer) 56
127.0.0.1:6379> setnx mykey redis #如果不存在就设置 成功返回1
(integer) 1
127.0.0.1:6379> set mykey gqy
OK
127.0.0.1:6379> setnx mykey gqy #如果存在就设置 失败返回0
(integer) 0
127.0.0.1:6379> get mykey
"gqy" #======================= # mset mset命令用于同时设置一个或多个key-value对 # mget mget命令如果返回所有(一个或多个)给定key值 # 如果给定的key里面 有某个key不存在 那么这个key返回特殊值 nil # msetnx 当所有key都设置成功 返回1 #如果所有给定key都设置失败(至少有一个key已经存在)那么返回0 原子操作 #======================= 127.0.0.1:6379> mset k1 wyt k2 lmp k3 hyd k4 yjy k5 gqy k6 syy
OK
127.0.0.1:6379> keys *
1) "browse"
2) "k5"
3) "key"
4) "k3"
5) "k4"
6) "k2"
7) "k1"
8) "mykey"
9) "k6"
127.0.0.1:6379> mget k1 k2 k3 k4 k5 k6
1) "wyt"
2) "lmp"
3) "hyd"
4) "yjy"
5) "gqy"
6) "syy"
127.0.0.1:6379> mget k10
1) (nil)
127.0.0.1:6379> msetnx k10 by k15 yy #原子性操作
(integer) 0
127.0.0.1:6379> get k15
(nil) #传统对象缓存 set user:1 value(json数据) #可以用来缓存对象 127.0.0.1:6379> mset user:1:name wyt user:1:age 2
OK
127.0.0.1:6379> mget user:1:name user:1:age
1) "wyt"
2) "2" #============================= # getset (先get在set) #=============================
127.0.0.1:6379> getset db mongodb #没有旧值 返回nil
(nil)
127.0.0.1:6379> get db
"mongodb"
127.0.0.1:6379> getset db redis #返回旧值 mongodb
"mongodb"
127.0.0.1:6379> get db
"redis"