Reids基本特性
- redis默认为16个数据库,可通过修改配置文件databases进行修改。
- 连接redis时默认使用0号数据库,可以使用select来进行切换
- Redis是单线程的,在内存上使用单线程可以避免上下文切换损耗
五大数据类型
1.String类型
string类型的方法:
-
APPEND key ‘string1’
功能: 字符串拼接
样例输出:stringstring1
备注:当key-value不存在,则相当于set -
STRLEN key
功能:字符串长度计算
样例输出:6 -
INCR key(自增1) / INCRBY key number(自增number)
功能: 自增
样例输出:{‘key’:0}运行完成{‘key’:1} -
DECR key(自减1) / DECRBY key number(自减number)
功能: 自减
样例输出:{‘key’:1}运行完成{‘key’:0} -
GERRANG key StartIndex EndIndex
功能: 截取startindex 到endindex的字符串
样例输出:GERRANG key 0 2运行输出 str
备注: index起始为0,0 -1代表全部字符串,0 3代表[0,3]左闭右闭 -
SETRANGE key StartIndex ReplaceString
功能: 从startindex开始替换成replacestring
样例输出:GERRANG key 1 ‘abc’ 运行输出 sabcng -
SETEX key Second
功能: key存在即设置过期时间为second
样例输出:SETEX key 30秒过期 -
SETNX key value
功能: key不存在则创建,存在不操作,SET的话存在会覆盖
样例输出:SETEX key value 不存在key则设置{‘key’:‘value’} -
MSET / MGET 批量创建批量获取
功能: 批量创建批量删除
样例输出:MSET key1 value1 key2 value2 -
MSETNX / MSETEX 批量
功能: 批量不存在则创建
样例输出:MSETNX key1 value1 key2 value2
备注:原子性操作,当某一个存在,则所有都不会生效 -
GETSET
功能: 先获取再创建
样例输出:GETSET key string1 输出string 且{‘key’:‘string1’}
2. List(列表)类型
-
LPUSH/RPUSH list value1
功能: 将value从列表左边/右边插入
样例输出:[value1,value]/[value,value1] -
LPOP/RPOP list
功能: 将列表左边/右边第一个元素移除
样例输出:[value1,value] -
LINDEX list index
功能: 获取index下标的value
样例输出:[value1,value] 运行LINDEX list 0输出value1 -
LLEN list
功能: 返回list的长度
样例输出:[value1,value] 运行LLEN list输出2 -
LREM list number value
功能: 将number个value从list中移除
样例输出:[value1,value]运行LREM list 1 value1 得到[value] -
LTRIM list startindex endindex
功能: 从startindex到endindex截取列表并replace原始列表
样例输出:[value,value1,value2]运行LTRIM list 0 1 得到[value,value1],原始列表被更改 -
LRANGE list startindex endindex
功能: 从startindex到endindex获取list元素
样例输出:[value,value1,value2]运行LRANGE list 0 1 得到[value,value1] -
LSET list index value1
功能: list存在则更新index下标的值为value1,不存在则报错
样例输出:[value]运行LSET list 0 value1得到[value1] -
LINSERT list BEFORE/AFTER value value1
功能: 在list的value前面/后面插入value1
样例输出:[value]运行LINSERT list BEFORE value value1得到[value1,value] -
RPOPLPUSH list1 list2
功能: 组合命令从list1右边拿出一个放到list2左边
3. Set(集合)类型
{‘key’}
-
SADD set value
功能: 在set中添加value -
SMEMBERS set
功能: 查看set所有value -
SISMEMBER set value
功能: 判断value是否在set中 -
SCARD set
功能: 获取set集合中元素个 -
SREM set value
功能: 移除set中的value -
SRANDMEMBER set
功能: 随机抽选出一个元素 -
SPOP set
功能: 随机弹出移除一个元素 -
SMOVE set1 set2 value
功能: 将value从set1移动到set2 -
SDIFF/SINTER/SUNION set1 set2
功能: 获取set1,set2差集/交集/并集
4. Hash(哈希)类型
数据样例:{‘key’:{‘key1’:‘value1’,‘key2’:‘value2’}}
大多数string类型的功能hash都可以实现
- HSET/HMSET key field value
功能:创建{‘key’:{‘field’:‘value’}}/批量创建 - HGET/HMGET hash field
功能:获取hash里的field的value值 - HDEL hash field
功能:删除hash里的field字段 - HGETALL hash
功能:获取hash里的所有key:value - HLEN hash
功能: 获取hash中的数据数量 - HKEYS/HVALS hash
功能: 获取hash中的所有的field值/value值 - HINCRBY hash field 1
功能:hash中的field字段 自增1
5. Zset
常用命令
命令 | 作用 |
---|---|
select | 切换数据库 |
keys * | 查看所有的key |
get key | 查看value |
flushdb | 清空当前数据库 |
flushall | 清空所有数据库 |
exists key | 判断key是否存在 |
move key 1 | 把1数据库当中的key移除 |
expire key 10 | 设置key的过期时间为10s |
set keyname value | 创建key-value |
type key | 查看key的类型 |
ttl key | 查看key剩余时间 |
append key “string1” | 字符串拼接key-stringstring1 |
GERRANG key startindex endindex | 从startindex到endindex截取 |
INCR key/INCRBY key number | 自增/自增number |
DECR key/DECRBY key number | 自减/自减number |
STRLEN key | 计算value长度 |
redis-benchmark
redis-benchmark压力测试工具
选项 | 功能 |
---|---|
-h | 指定主机ip |
-p | 端口号 |
-c | 指定连接数 |
-n | 请求数 |
–csv | 以csv格式输出 |
#10为并发请求1000次本地redis
redis-benchmark -h localhost -p 6379 -c 10 -n 1000