1. redis-cli 命令行进入redis
set,get,
setex,给键值设置过期时间 setex name 10 DOG //设置name键 为 DOG 10秒后过期。
setnx,判断值是否存在,如果存在就不更新键值。如果不存在,则赋值。 (nx :not exist)
getset,设置一个新值,并返回key的旧值。
mset,批量设置键值。
msetnx,
mget,
setrange,替换值串部分。 客户端测试:
redis 127.0.0.1:6379> set email test@gmail.com OK redis 127.0.0.1:6379> setrange email 5 qq.com (integer) 14 redis 127.0.0.1:6379> get email "test@qq.comcom" redis 127.0.0.1:6379> set email test@qq.com OK redis 127.0.0.1:6379> get email "test@qq.com" redis 127.0.0.1:6379> setrange email 5 gmail.com (integer) 14 redis 127.0.0.1:6379> get email "test@gmail.com"//简而言之,替换部分如果未超过原来字符串,则原本未被替换的字符串被保留下来。 如果被替换部分长度超过原来,则显而易见。
getrange,
redis 127.0.0.1:6379> set key1 123456789 OK redis 127.0.0.1:6379> getrange key1 0 3 "1234"
incr,自增1, 如果键不存在,第一次自增相当于赋值 (decr)
redis 127.0.0.1:6379> set key1 12 OK redis 127.0.0.1:6379> incr key1 (integer) 13
incrby,增加 或 减少 (decrby)
redis 127.0.0.1:6379> set key1 5 OK redis 127.0.0.1:6379> incrby key1 -3 (integer) 2
append, 值后 拼接一个新字符串。 返回新串长度
strlen,
2. -------------------h : hash
这里截图2个, 说明普通键值对 与 hash key->value区别:
hset,hget,hdel,hmset,hmget, hincr, hincrby,
hlen,返回hash field的个数
hexists,
redis 127.0.0.1:6379> hexists user:001 name (integer) 1
hkeys,返回hash表 所有 field
hvals,返回hash表 所有 值
hgetall,返回hash表 所有 field 与 值
3.list
-------------------------------- 头
| |
| |
| |
| |
--------------------------------尾
lpush:从list头开始压入数据
rpush:从list尾开始压入数据
redis 127.0.0.1:6379> lpush list1 wo (integer) 1 redis 127.0.0.1:6379> lpush list1 cao (integer) 2 redis 127.0.0.1:6379> lpush list1 haha (integer) 3 redis 127.0.0.1:6379> lrange list1 0 -1//从头 = > 尾 依次是. 1) "haha"//头 2) "cao" 3) "wo"//尾 redis 127.0.0.1:6379> rpush list1 wo (integer) 1 redis 127.0.0.1:6379> rpush list1 cao (integer) 2 redis 127.0.0.1:6379> rpush list1 haha (integer) 3 redis 127.0.0.1:6379> lrange list1 0 -1 1) "wo" 2) "cao" 3) "haha"
linsert: 在堆栈数据中间 插入一个数据, 实例:在1,3之间插入2
redis 127.0.0.1:6379> del list1 (integer) 1 redis 127.0.0.1:6379> lpush list1 1 (integer) 1 redis 127.0.0.1:6379> lpush list1 3 (integer) 2 redis 127.0.0.1:6379> linsert list1 before 1 2 (integer) 3 redis 127.0.0.1:6379> lrange list1 0 -1 1) "3" 2) "2" 3) "1"
lset,对指定下标元素 进行赋值
lrem,删除相同对应value元素. lrem list1 2 one //删除list1中 2个 one 元素
ltrim,保留指定key范围内的数据.
redis 127.0.0.1:6379> lpush list1 one (integer) 1 redis 127.0.0.1:6379> lpush list1 two (integer) 2 redis 127.0.0.1:6379> lpush list1 three (integer) 3 redis 127.0.0.1:6379> ltrim list1 1 -1 OK redis 127.0.0.1:6379> lrange list1 0 -1 1) "two" 2) "one"
lpop:从头 弹出一个 元素.
rpop:从尾 弹出一个 元素.
rpoplpush list1 list2: 从list1尾部弹出元素 A 压入到 list2的头部
lindex : 返回list中 小标为 index的 元素值。 // lindex list1 0.
llen:
4.sets集合:无序集合 无重复元素
sadd: sadd set1 hello // sadd set1 world //sadd 不可以添加相同元素。 添加成功返回1
smembers:查看集合所有成员
srem: 删除成员
spop:随机弹出一个元素
sdiff:返回所有给定key与第一个key的差集
redis 127.0.0.1:6379> sadd set1 one (integer) 1 redis 127.0.0.1:6379> sadd set1 two (integer) 1 redis 127.0.0.1:6379> sadd set2 one (integer) 1 redis 127.0.0.1:6379> sadd set2 three (integer) 1 redis 127.0.0.1:6379> sdiff set1 set2 1) "two"
sdiffstore:将差集返回的 集合 存储到 另一个集合中。 sdiffstore set3 set1 set2 //返回set3的差集
redis> SMEMBERS peter's_movies 1) "bet man" 2) "start war" 3) "2012" redis> SMEMBERS joe's_movies 1) "hi, lady" 2) "Fast Five" 3) "2012" redis> SDIFF peter's_movies joe's_movies 1) "bet man" 2) "start war"