summaryrefslogtreecommitdiff
path: root/docs/man/libmemcached_examples.3
blob: a08e625d2cb5d550810de9d11a8decddf90052f8 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
.TH "LIBMEMCACHED_EXAMPLES" "3" "August 02, 2012" "1.0.10" "libmemcached"
.SH NAME
libmemcached_examples \- libmemcached Documentation
.
.nr rst2man-indent-level 0
.
.de1 rstReportMargin
\\$1 \\n[an-margin]
level \\n[rst2man-indent-level]
level margin: \\n[rst2man-indent\\n[rst2man-indent-level]]
-
\\n[rst2man-indent0]
\\n[rst2man-indent1]
\\n[rst2man-indent2]
..
.de1 INDENT
.\" .rstReportMargin pre:
. RS \\$1
. nr rst2man-indent\\n[rst2man-indent-level] \\n[an-margin]
. nr rst2man-indent-level +1
.\" .rstReportMargin post:
..
.de UNINDENT
. RE
.\" indent \\n[an-margin]
.\" old: \\n[rst2man-indent\\n[rst2man-indent-level]]
.nr rst2man-indent-level -1
.\" new: \\n[rst2man-indent\\n[rst2man-indent-level]]
.in \\n[rst2man-indent\\n[rst2man-indent-level]]u
..
.\" Man page generated from reStructeredText.
.
.sp
Examples for libmemcached
.SH DESCRIPTION
.sp
For full examples, test cases are found in tests/*.c in the main
distribution. These are always up to date, and are used for each test run of
the library.
.SH CONNECTING TO SERVERS
.sp
.nf
.ft C
const char *config_string= "\-\-SERVER=host10.example.com \-\-SERVER=host11.example.com \-\-SERVER=host10.example.com"
memcached_st *memc= memcached(config_string, strlen(config_string);
{
\&...
}
 memcached_free(memc);
.ft P
.fi
.sp
In the above code you create a \fBmemcached_st\fP object with three server
by making use of \fBmemcached_create()\fP.
.SH CREATING A POOL OF SERVERS
.sp
.nf
.ft C

.ft P
.fi
.sp
Creating a pool of Servers:
.sp
.nf
.ft C
const char *config_string= "\-\-SERVER=host10.example.com \-\-SERVER=host11.example.com \-\-SERVER=host10.example.com";

memcached_pool_st* pool= memcached_pool(config_string, strlen(config_string));

memcached_return_t rc;

memcached_st *memc= memcached_pool_pop(pool, false, &rc);

\&.... do work

/*
  Release the memc_ptr that was pulled from the pool
*/
memcached_pool_push(pool, memc);

/*
  Destroy the pool.
*/
memcached_pool_destroy(pool);
.ft P
.fi
.sp
In the above code you create a \fBmemcached_pool_st\fP object with three
server by making use of \fBmemcached_pool()\fP.
.sp
When \fBmemcached_pool_destroy()\fP all memory will be released that is associated
with the pool.
.SH ADDING A VALUE TO THE SERVER
.sp
.nf
.ft C

.ft P
.fi
.sp
Adding a value to the Server:
.sp
.nf
.ft C
char *key= "foo";
char *value= "value";

memcached_return_t rc= memcached_set(memc, key, strlen(key), value, value_length, (time_t)0, (uint32_t)0);

if (rc != MEMCACHED_SUCCESS)
{
\&... // handle failure
}
.ft P
.fi
.sp
It is best practice to always look at the return value of any operation.
.SH FETCHING MULTIPLE VALUES
.sp
.nf
.ft C
memcached_return_t rc;
char *keys[]= {"fudge", "son", "food"};
size_t key_length[]= {5, 3, 4};
unsigned int x;
uint32_t flags;

char return_key[MEMCACHED_MAX_KEY];
size_t return_key_length;
char *return_value;
size_t return_value_length;

rc= memcached_mget(memc, keys, key_length, 3);

x= 0;
while ((return_value= memcached_fetch(memc, return_key, &return_key_length,
                                      &return_value_length, &flags, &rc)))
{
  free(return_value);
  x++;
}
.ft P
.fi
.sp
Notice that you freed values returned from memcached_fetch(). The define
\fBMEMCACHED_MAX_KEY\fP is provided for usage.
.SH HOME
.sp
To find out more information please check:
\fI\%http://libmemcached.org/\fP
.SH SEE ALSO
.sp
\fImemcached(1)\fP
.SH AUTHOR
Brian Aker
.SH COPYRIGHT
2011, Brian Aker DataDifferential, http://datadifferential.com/
.\" Generated by docutils manpage writer.
.\" 
.