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 #设置值 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"
String
数据结构是简单的
key-value
类型,
value
其实不仅可以是
String
,也可以是数字。
常规
key-value
缓存应用:
常规计数:微博数,粉丝数等。