Redis指南-安装、五种类型命令
1.Redis概述
1.Redis是开源的,用于构建高性能、可扩展web应用的key-value内存存储系统。相比于其他key-value系统,redis具有如下特定:
- redis在内存中保存数据,并使用硬盘持久化数据
- redis支持五种数据类型:STRING/LIST/SET/HASH/ZSET
- redis可以将数据写到多个slave
2.Redis优点:
- 极速:每秒110000次写、81000次读
- 支持多种数据类型:STRING/LIST/SET/HASH/ZSET
- 原子化操作:所有的redis操作都具有原子性
- 多用途:可用于缓存、消息队列、短暂存储的信息存储(web session/点击计数等)
2.Redis环境搭建
1.Ubuntu中安装:
sudo apt-get update
sudo apt-get install redis-server
2.启动(默认6379端口):
redis-server
3.客户端连接:
redis-cli
ping
//返回PONG
4.还可以下载docker版本的redis:
docker run --name redis-server -d redis
docker run -it --link redis-server:redis-cli --rm redis redis-cli -h redis -p 6379
第一句启动docker版本redis-server,第二句启动docker版本redis-cli,-h指定redis-server的主机名或者ip
5.桌面可视化redis工具可在http://redisdesktop.com/download
下载。
3. Redis配置
1.配置文件为redis根路径下的redis.conf,也可以使用CONFIG命令进行设置、读取配置。
2.CONFIG命令语法:
- 读取:
config get config_setting_name
,例如:config get *
读取所有命令 - 设置:
config set config_setting_name new_config_value
,例如config set loglevel "notice"
设置日志级别为notice
4. Redis数据类型
支持5种数据类型:
- STRING:一组字符,key-value类型,value最多存储512个字符。
- HASH:field-value对的集合:<key,(field-value)>,用于存储对象。可存储大于40亿个field-value对(2^32-1)。
- LIST:有序列表,支持从头尾添加。可存储大于40亿(2^32-1)个元素。
- SET:无序集合,元素不能重复,时间复杂度O(1)。可存储大于40亿(2^32-1)个元素。
- SORTED SET:有序集合,元素按照score从小到大进行排序,元素不能重复,score可以重复。
5. Redis命令
1.客户端连接命令:
redis-cli -h host -p port -a password
6. Redis键
1.与key相关的命令有:
- del key:删除key
- dump key:返回可以的序列化形式
- exist key:检查key是否存在
- expire key seconds:设置key的在seconds秒后失效
- expireat key timestamp:设置key的失效时间
- pexpire key milliseconds:设置key在精确到毫秒后失效
- pexpire key 设置key的失效时间,精确到毫秒
- key pattern:查找符合模式的key
- move key db:移动key到另一个db
- persist key:取消key的失效时间
- pttl key:获取精确到毫秒的key的失效时间
- ttl key:获取精确到秒的key的失效时间
- randomkey:获取随机key
- rename key newkey:重命名key
- renamenx key newkey:如果newkey不存在,重命名key为newkey
- type key:返回key中数据的类型
7. Redis字符串
1.与字符串相关的命令有:
- set key value:设置key-value
- get key:获取key的value
- getrange key start end:获取key在范围内的子串
- getset key value:设置可key的值为value并返回其旧值
- getbit key offset:获取key中offset位置的字节
- mget key1 [key2..]:获取所有指定key的值
- setbit key offset value:设置key指定offset的值
- setex key seconds value:设置seconds秒后失效的key的值
- setnx key value:key不存在则设置其值
- setrange key offset value:设置offset开始的key的值
- strlen key:获取key长度
- mset key value[key value...]:设置多个key-value
- msetnx key value[key value...]:如果key不存在,设置多个key-value
- psetex key millseconds value:millseconds后失效的key-value
- incr key:key自增
- incrby key increment:key增加increment
- incrbyfloat key increment:可以增加float类型的increment
- decr ey:key自减
- decrby key decrement:key减少decrement
- append key value:key添加value
8. Redis哈希
1.hashes是<key,fields-value>的map。redis可以存储40亿的fields-value对。常用命令如下:
- hdel key field [field2]:删除key下的field、field2
- hexist key field:检查field是否存在
- hget key field:获取key下field对应的value
- hgetall key:获取key下所有的field-value
- hincrby key field increment:自增increment
- hincrbyfloat key field increment:自增float类型increment
- hkeys key:获取key对应的所有fields
- hlen key:获取key对应的fields的个数
- hmget key field1 [field2]:获取field1等的值
- hmset key field1 value1 [field2 value2]:设置多个值
- hset key field value:设值
- hsetnx key field value:不存在,设值
- hvals key:获取可以对应的所有value
- hscan key cursor [match pattern] [count count]:遍历fields和values
9. Redis列表
1.按照插入顺序排序存储,可以在头尾添加元素。最大可以存储2^32-1个元素,常用操作方法如下:
- Blpop
- Brpop
- Brpoplpush
- Lindex
- Linsert
- Llen
- Lpop
- Lpush
- Lpushx
- Lrange
- Lrem
- Lset
- Ltrim
- Rpop
- Rpoplpush
- Rpush
- Rpushx
10.Redis 集合set
1.存储无序,不能重复的key的元素。最大2^32-1存储容量(40亿)。常用命令如下:
- Sadd
- Scard
- Sdiff
- Sdiffstore
- Sinter
- Sinterstore
- Sismember
- Smembers
- Smove
- Spop
- Srandmember
- Srem
- Sunion
- Sunionstore
- Sscan
11.Redis 有序集合
1.存储有序、不能重复的key的元素。同set类似。常用命令如下:
- Zadd
- Zcard
- Zcount
- Zincrby
- Zinterstore
- Zlexcount
- Zrange
- Zrangebylex
- Zrangebyscore
- Zrank
- Zrem
- Zremrangebylex
- Zremrangebyrank
- Zremrangebyscore
- Zrevrange
- Zrevrangebyscore
- Zrevrank
- Zscore
- Zunionstore
- Zscan
网友评论