redis 学习笔记

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,提高系统的伸缩性

 

posted @ 2016-11-04 21:13  PYTHON&PHP&R  阅读(143)  评论(0编辑  收藏  举报