Redis: key-value数据库,数据存在内存里,效率高,应用上常用来做缓存
1,set key value命令中key被当做字符串 keys pattern命令中pattern被看做表达式
示例:
127.0.0.1:6001> flushall
OK
127.0.0.1:6001> keys
(error) ERR wrong number of arguments for 'keys' command
127.0.0.1:6001> set xiexian
OK
127.0.0.1:6001> set huanhang
OK
127.0.0.1:6001> exists
(integer) 1
127.0.0.1:6001> exists
(integer) 1
127.0.0.1:6001> get
"xiexian"
127.0.0.1:6001> get
"huanhang"
127.0.0.1:6001> keys *
1) "\n"
2) "\"
127.0.0.1:6001> keys
1) "\"
127.0.0.1:6001> keys *
(empty list or set)
127.0.0.1:6001> keys
(empty list or set)
127.0.0.1:6001> keys \*
1) "\n"
2) "\"
127.0.0.1:6001>
可以看出来,keys查看的结果中被用作转义字符,keys命令后的pattern中也被看做转义字符,但是set命令中却不是。先记住,省得以后在这里出错。
Redis命令中心 http://www.redis.cn/commands.html
所有Redis命令都是原子操作,即多线程安全
key的格式约定;object-type:id:field
常用命令:
Redis命令不区分大小写
redis-server configfile --port 6379
redis-clli -p 6379 (cli stands for command line interface)
ping
clear
set key value
get key
exists key
type key
flushall 这个命令是清空所有字典
keys pattern
del key
select id
incr key(key不存在时,按照0自增到1来处理)
incrby key increment
decr key
decrby key decrement
incrbyfloat key increment(incrementdecrement 都可以为负值)
append key string
strlen key
mget key [key...]
mset key value [key value ...]
setbit key 0/1
getbit key index
bitcount key [startIndex endIndex](index = -1 error;index>=length,默认0)
bitpos key 0/1 [start] [end] 键值中指定字节范围内第一个二进制为0/1的位置偏移量
bitop operation destkey key [key...]
bitop支持的操作有and or xor not
127.0.0.1:6001> keys *
(empty list or set)
127.0.0.1:6001> mset 1 bar 2 aar
OK
127.0.0.1:6001> bitop or result 1 2
(integer) 3
127.0.0.1:6001> keys *
1) "2"
2) "result"
3) "1"
127.0.0.1:6001> get result
"car"
127.0.0.1:6001>
2,Redis 数据类型
字符串类型:set赋值的字段就是字符串类型
散列类型:hset、hmset赋值的字段,删除hash类型使用命令del,删除hash类型的字段使用hdel
hmset key filed value [filed value ...]是给同一个key赋值多个字段
hkeys key显示指定某个key的全部字段数名称
hget key filed 取hash key的某一个字段数值
hmget key filed [filed...] 取hash key的多个字段的数值
hvals key取全部字段值
hgetall key 不仅显示hash key的全部字段数值,而且显示其全部字段名称
hexists key filed 判断某个字段是否存在
hsetnx key filed value
hincrby key filed increment增加数值
hincrbyfloat key filed increment增加浮点数值
(没有命令:hincr、hdecry、hdecriby、hdecribyfloat)
hdel key filed [filed...] 删除字段
hlen key 计算字段数量
del key 可以删除hash key
---------------------------------------------------------------
hkeys、hvals、hgetall 、hlen所需参数只要一个key,操作的是整个hash key
列表类型list
lpush key value [value...]
rpush key value [value...]
lpop key
rpop key
llen key
lrange key start stop没有rrange命令,start、stop数值可以为负,0表示左侧第一个元素,-1表示右侧第一个元素
lrem key count value删除指定个数个值为value的元素,count为负值时表示从右侧开始删除,比方说lrem akey -5 0,它会从右侧起依次删除5个0(如果akey中有足够个数的0,即便是仅有的5个0都放在了akey的左侧,也会被删除),此命令的返回值就是删除了的0的个数,取值明显是0-5,最多删除5个
lindex key index
lset key index value
ltrim key start stop只保留指定片段
linsert key before|after privot value查找privot的位置是从左向右找第一个
rpoplpush source destination这个命令一次只转移一个值
集合类型set