redis 的安装,网上的教程比较多,随便搜索一下按照里面的步骤即可安装。
安装完成后启动redis :redis-server redis.conf
进入redis客户端:redis-cli
redis 的端口是6379
redis 是用c语言开发的基于内存的可持久化存储的key-value 的数据库。
redis的数据类型有5种:
string,list,sets,sorted sets,hashes
redis 的配置:
获取redis 配置:config get 配置项 config get * (获取所有的配置)
修改redis配置:config set CONFIG_SETTING_NAME NEW_CONFIG_VALUE
配置参数说明:
http://www.redis.net.cn/tutorial/3504.html
redis 命令:
客户端连接服务器:
redis-cli
连接远程服务器:
redis-cli -h host -p port -a password
redis 字符串常用命令:
set key value 设置键值
setnx key value 只有当key不存在时设置key
setex key time value 设置一个带有效期的key
setrange key 小标起始位置 value
mset key value [key value..] 设定多个值
msetnx key value [key value ..] 同时设置多个key
get key
getset key value 设置key的值,并返回旧值
getrange key start end
mget key1 [keys2..] 获取多个给定的key
incr key 对key值做加操作 并返回新值
incrby key num 对key做加法 ,加num
decr key
decrby key num
append key str 对key字符串追加str
strlen key 返回字符串长度
redis hashes 类型 及常用命令:
hset key field value 设置哈希field为指定值
hsetnx key field value
hmset key field1 value1 field2 value2
hget key field
hmget key field1 field2..
hgetall key
hincrby key field num
hexists key field
hlen key 返回指定hash的field数量
hdel key field 删除hash的field
hkeys key 返回hash的所有field
hvals 返回hash的所有value
lists类型及操作
list是个链表结构,主要功能是push,pop,获取一个范围内所有的值等等,操作中key理解为链表的名字。
lpush mylist "value" 在key对应list的头部添加字符串
rpush mylist ''
linsert mylist
lset 设置指定下标的list
lrem 从key对应list中删除count个和value相同的元素。
count>0时,按从头到尾的顺序删除,count<0时,按从尾到头的顺序删除
count=0 时,全部删除
ltrim mylist start end 保留指定key的值范围内的数据
lpop 从list的头部删除元素,并返回删除元素
rpop 从list的尾部删除元素,并返回删除元素
rpoplpush 从第一个list的尾部删除元素,并添加到第二个list的头部
lindex 返回名称为key的list中index位置的元素
llen 返回key对应list的长度
sets类型及操作:
redis的set是string类型元素的无序集合。
sadd myset "hello" 向名称为key的set中添加元素
srem myset 'one' 删除名称为key的set中的元素member
spop 随机返回并删除名称为key的set中一个元素
sdiff 返回所有给定key与第一个key的差集
sdiffstore 返回给定key 与第一个key的差集,并将结果存为另一个key
sinter 返回所有给定key的交集
sinterstore 返回所有给定key的交集,并将结果存为另一个key
sunion 返回给定key的并集
sunionstore 返回所有给定key的并集,并将结果存为另一个key
smove 从第一个key对应的set中移除member 并添加到第二个对应set中
scard myset2 返回名称为key的set的元素个数
sismember 测试member是否为key的set的元素
srandmembers 随机返回名称为key 的set的一个元素
sorted sets 类型及操作:
zadd 向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。
zrem 删除名称为key的zset中的元素member
zincrby
如果在名称为key 的zset 中已经存在元素member,则该元素的score 增加increment;否则向集合中添加该元素,其score 的值为increment
zrank 返回名称为key的zset中member元素的排名即下标
zrevrank
zrevrange
zrangebyscore
zcount
zcard
zscore
zremrangebyrank
zremrangebyscore
Redis 常用命令
键值相关命令
keys *
exists
del
expire 设置过期时间
persist 移除给定key的过期时间
move 将当前数据库中的key转移到其他数据库中
randomkey 随机返回key空间中的一个key
rename 重命名key
type 返回值得类型
服务器相关命令:
ping
echo 在命令行打印一些内容
select 选择数据库
quit 退出连接
dbsize 返回当前数据库中key的数目
info 获取服务器的信息和统计
config get 获取服务器的配置信息
flushdb 删除当前所选数据库中所有的key
flushall 删除所有数据库中的所有key
Redis 高级实用特性
config set requirepass "p" 设置密码
auth 密码
主从复制:
redis 主从复制的特点
1,master 可以拥有多个slave
2,多个slave可以可以连接同一个master外,还可以连接到其他slave
3,主从复制不会阻塞master,在同步数据时,master可以继续处理client请求
4,提高系统的伸缩性