Redis 基本命令

$dir: /usr/local/redis/redis-2.8.13

start sever:  cd $dir
src/redis-server
src/redis-cli

stop server: pkill redis-server

commands :
keys *


将Redis 作为Linux 服务随机启动
vi /ect/rc/local 在其中添加一行代码
/usr/local/redis/redis-2.8.13/src/redis-server

配置Redis 配置文件名称:redis.conf

常用命令:
del name 删除键
exists name 判断键是否存在

Redis 支持的各种数据类型及其操作接口。
1. strings 类型及操作
setnx 存在就不更新 不存在就设置
setex 设置有效时间
setex haircolor 10 red (设置haircolor = red 的有效期是10s)
setrange 设置key 的value 值的子字符串
mset 一次这只多个key 的值,成功返回Ok表示所有的值都设置了,失败返回0 表示没有任何值被设置。
msetnx 同上,不覆盖已经存在的key。

getset 先获取旧值,再设置新值。
getset name HongWan_new (HongWan)
get name HongWan_new

getrange 获取指定key 的value 值的子字符串。
getrange name 0 2

mget 一次获取多个key 的值,如果对应的key 不存在,则返回nil

incr 对key 的值做加加操作,并返回新的值。注意incr 不是一个int 的value 会返回错误。如果key 不存在,则设置key 为1。
incrby 增加指定值,不存在时认为初始值为0。

decr 对key 的值做的是减减操作。decr 一个不存在的值,则将其设置为 -1。
decrby 减指定值。

append 给指定key 的字符串追加value,返回新的字符串的长度。
strlen 取指定key 的value 值的长度。

2. hashes 类型及操作
hset 指定值
hset myhash field1 hello
hsetnx 存在则不覆盖

hmset 同时设置hash 的多个field。
hmset myhash filed1 hello field2 hello2

hget 获取指定的hash field
hget myhash field1

hmget 获取全部指定的hash filed
hmget myhash field1 field2 field3

hincrby 指定的hash field 加上给定值。
hexits myhash field1 判断field 是否存在。

hlen 返回指定hash 的 field 数量。 
hdel myhash field1 删除某个field。

hkeys myhash 返回hash 的所有field。
hvals myhash 返回所有字段的值。

hgetall myhash 获取某个hash 中全部的field 及value。

3. lists 类型及操作
list 是一个链表结构,主要功能是pus、pop 获取一个范围的所有值等等,操作中key 理解为链表的名字。
Redis 的list 类型是一个每个子元素是string 类型的双向链表。可以从链表的头部或尾部删除或添加元素,因此list 可以用作队列和栈。

lpush mylist hello 在头部插入。
lrange mylist 0 -1 获取部分。
rpush mylist hello 在尾部插入。

linsert mylist2 before world there 在key 对应的list 的特定位置之前或之后添加。
lset mylist2 0 "four" 设置指定位置的值。

lrem 从key 对应的list 中删除 count 个和value 相同的元素。count > 0时,按从头到尾的顺序删除。count < 0 从尾到头删除。count == 0 全部删除。

ltrim 保留指定key 的值范围内的数据。

lpop 从list 的头部删除元素,并返回删除的元素值。整个操作为原子的。
lindex mylist2 0 返回名称为key 的list 中的index 位置的元素。

llen mylist2 返回key 对应 list 的长度。



rpop 从list 的尾部删除元素,并返回删除的元素。
rpoplpush 从第一个list 的尾部移除元素并添加到第二个元素的.

4. sets 类型及操作
Redis 的set 是string 类型的不重复、无序集合。set 最大可包含2^32 个元素。

sadd myset hello 添加元素。
smembers myset 查看所有元素。
srem myset hello 删除元素。
spop myset 随机发那会删除set 中的一个元素。

sdiff 返回所有给定key 与第一个key 的差集。
sdiffstore myset4 myset2 myset3 返回myset3 与myset2的差集,并将结果存为myset4。
sinter myset2 myset3 返回所有给定key 的交集。
sinterstore myset5 myset2 myset3

sunion 返回所有给定key 的并集。
sunion myset2 myset3
sunionstore myset4 myset2 myset3

smove 从第一个key 对应的set 中移除member 并添加到第二个对应的set 中。
smove myset2 myset3 three

scard myset 返回名称为key 的set 的元素的个数。
sismember 测试member 是否是名称为key 的set 的元素。
sismember myset two

srandmember 随机返回名称为key 的set 的一个元素,但是不删除。
srandmember myset

5. sorted sets 类型及操作。

6. Redis 常用命令
keys * 返回满足给定pattern 的所有key。
keys my*

exists key 判断key 是否存在。
expire key 10 设置一个key 的过期时间。

ttl 获取有效时常。
move 将当前数据库中的key 转移到其他数据库中。
persist key 移除给定key 的过期时间。

randomkey 随机返回key 空间的一个key。
rename key 重命名key。
type key 返回值的类型。

7. 服务器相关命令
ping 测试连接是否存活。
echo 在命令行打印一些内容。
select 选择数据库。Redis 数据库编号0~15。
quit 退出连接。
dbsize 返回当前数据库中的key 的数目。
info 获取服务器的信息和统计。
monitor 实时转储收到的请求。

config get dir 获取服务器配置信息。

flushdb 删除当前选择数据库中的所有key。
flushall 删除所有数据库中的所有key。

8. Redis 高级实用特性。
requirepass beijing
连接的时候 auth beijing
连接到服务器时指定口令 src/redis-cli-a beijing

9. 事务
当在一个client 连接中发出multi 命令,这个连接会进入一个事务上下文,该连接后续的命令并不是立即执行,而是先放到一个队列中。当从此连接接收到exec 命令后,redis 顺序执行队列中的所有命令。
取消事务 discard 清空事务命令队列并推出事务上下文。

10. 持久化机制
  snapshotting 方式
  aof 方式

11. 虚拟内存的使用





猜你喜欢

转载自tramp-zzy.iteye.com/blog/2111757