redis:Remote Directory Server 远程服务器字典
@安装 //欠缺
@@Linux下安装Reids
http://redis.io/download
wget http://download.redis.io/releases/redis-3.0.1.tar.gz 下载
tar -xzvf redis-3.0.1.tar.gz 解压
cd redis-3.0.1 进入解压目录
make 编译 安装
make install
在bin下可执行的程序
redis-server:Redis服务器
redis-cli:命令行客户端
redis-benchmark:Redis的性能测试工具
redis-check-aof:AOF文件修复工具
redis-check-dump:RDB文件检测工具
@配置 //欠缺
redis.conf是Redis的配置文件
将配置文件中daemonize yes 以守护进程的方式来使用
@类型
@@key所有命令
1.返回所有符合给定模式的key
keys pattern
* : 任意个字符
? : 一个任意字符
[] : []之间的一个字符
keys *
keys yh?
keys yh[a-z]
2.检测指定的key是否存在
exists key
3.返回key的存储类型
type key
不存在的key返回none
string hash set zset list
4.删除指定的key
del key
5.随机从当前数据库返回一个key
randomkey
6.重命名一个key
rename key1 key2
如果名称没有发生变化会报错
7.序列化key,返回序列化后的值
dump key
8.反序列化
restore key 0(生存时间) \x00\x0
9.
select 0 (默认数据库) 切换数据库
move key 1(dbid)
@@string类型 一个键最多512MB
1.设置value set key value
EX seconds : 以秒的形式设置key的过期时间 set yhq qhh EX 5
PX milliseconds : 以毫秒的形式设置key的过期时间 set yhq qhh PX 5000 / pexpire key1 1000
在指定时间戳过期秒/毫秒 expireat/pexpireat key1 14343434/13424240000
将带有过期时间的key设置为永久的key
persist key
同名的key会覆盖
2.获取value get key
如不存在 返回 nil(代表空)
如果key不是字符串 会报错
以秒/毫秒为单位返回key剩余时间
ttl/pttl key
如果没有设置过期时间 -1
key不存在 -2
3.获取value指定长度一部分(截取)
getrange yhq 0 3
4.一次性设置多个键值
mset key1 value1 key2 value2
5.一次性获取多个键值
mget key1 key2
6.获取key的长度
strlen yhq
7.字符串替换
set yhq qhh123
setrange yhq 3 546
如果设置的超出偏移量 用零字节(\x00)补充
8.将key的值自增+1
incr age
如果key不存在,则会先初始化为0 在进行incr
如果key存储的不是数字 则会报错
9.将key的值增加指定的值 incrby num
10.将key的值增加指定的浮点数
incrbyfloat yhq 1.1
11.将key的值自减-1 decr age
12.将key的值减少指定的值 decrby num
13.获取所有的key
keys *
14.将值追加到字符串末尾
append yhq qhh
mysql表
id username password
1 123 123123
2 456 456456
将上面mysql表里面的数据存储到redis,存储的key该如何设计
1.把mysql的表名获取redis里面的key的前缀(user前缀)
2.把mysql的表的主键名称放在前缀的后面,一般使用冒号分割(user:id)
3.对应记录的主键值做key的第三部分(user:id:1)
4.把mysql表里面的其他字段作为key的第四部分(user:id:1:username)
set user:id:1:username 123
set user:id:1:password 123123
获取表下主键所有字段
keys user:id:1*
获取表下主键字段的值
get user:id:1:username
@@hash类型
1.设置array的key的value
hset array key value
如果哈希表key中field不存在,相当于新建field,成功1
如果哈希表key中field存在,相当于重新赋值,成功0
2.返回哈希表中key的field值
hget arr key
如果不存在返回nil
3.设置多个k-v
hmset arr key1 value1 key2 value2
4.获取多个k-v
hmget arr key1 key2
5.返回hash表arr中所有的k-v
hetall key
6.返回hash中arr的所有key
hkeys arr
7.返回hash中arr的所有value
hvals arr
8.检测还是中的arr的key是否存在
hexists arr key
9.返回hash表arr中key的数量
hlen arr
10.给hash中arr的key做增量操作
hincrby arr key1 12
11.给hash中arr的key做浮点增量操作
hincrbyfloat arr key1 1.2
12.删除hash中arr的指定域 可以删除一个也可以删除多个
hdel arr key1 key2